Hailstone sequence: Difference between revisions

Content added Content deleted
(Add Refal)
(Add bruijn)
Line 2,210: Line 2,210:
Longest so far: 77031 @ 351 elements
Longest so far: 77031 @ 351 elements
Longest was starting from 77031 and was of length 351</pre>
Longest was starting from 77031 and was of length 351</pre>

=={{header|Bruijn}}==

<syntaxhighlight lang="bruijn">
:import std/Combinator .
:import std/List .
:import std/Math M
:import std/Number/Binary .

# hailstone sequence using binary shifts
hailstone y [[(0 =? (+1b)) {}0 go]]
go 0 : (=²?0 (1 /²0) (1 (↑¹0 + 0)))

# --- tests ---

seq-27 hailstone (+27b)

:test (∀seq-27) ((+112))
:test (take (+4) seq-27) ((+27b) : ((+82b) : ((+41b) : {}(+124b))))
:test (take (+4) <~>seq-27) ((+1b) : ((+2b) : ((+4b) : {}(+8b))))

below-100000 [0 : ∀(hailstone 0)] <$> seq
seq take (+99999) (iterate ++‣ (+1))

main [head (max-by (M.compare ⋔ tail) below-100000)]
</syntaxhighlight>


=={{header|Burlesque}}==
=={{header|Burlesque}}==