Fractran: Difference between revisions
m
→Haskell - Generation of primes: Simplified slightly by replacing findIndex with elemIndex
m (→Reading the program: (specialized a type signature slightly to enable compilation)) |
m (→Haskell - Generation of primes: Simplified slightly by replacing findIndex with elemIndex) |
||
Line 1,771:
===Generation of primes===
Additional import
<lang Haskell>import Data.Maybe (mapMaybe)
import Data.List (elemIndex)</lang>
<lang Haskell>primes = mapMaybe log2 $ fractran prog 2▼
<lang Haskell>primes :: [Int]
where
prog =
, 19 % 51
log2 = fmap (+ 1) . findIndex (== 2) . takeWhile even . iterate (`div` 2)</lang>▼
, 23 % 38
, 29 % 33
, 77 % 29
, 95 % 23
, 77 % 19
, 1 % 17
, 11 % 13
, 13 % 11
, 15 % 14
, 15 % 2
, 55 % 1
]
<pre>λ> take 20 primes
|