esolangs/fractran.bqn

36 lines
888 B
BQN
Raw Permalink Normal View History

2022-03-18 06:13:02 +00:00
# Fractran interpreter
# Helpers
_while_ {𝔽𝔾𝔽_𝕣_𝔾𝔽𝔾𝕩}
ToInt 10×+˜´·-'0'
ToFrac {
i /'/'=𝕩
ToInt¨i(1+)𝕩
}
Split ((¬-˜×·+`»>))
Fractran {
𝕊 nnumden:
ind /0=den|num×n
(n×indnum)÷indden num den
}
RunFractran {
steps 𝕊 inpprg:
numden <˘>ToFrac¨' 'Split prg
step 1
list inp
{
step + 1
out Fractran 𝕩
list out
out
} _while_ {𝕊 nnumden: (step<steps) ´0=den|num} inpnumden
list
}
seq 200 RunFractran 2"17/91 78/85 19/51 23/38 29/33 77/29 95/23 77/19 1/17 11/13 13/11 15/14 15/2 55/1"
•Out "Generated numbers: "•Repr seq
2022-03-18 16:21:42 +00:00
•Out "Primes: "•Repr 12(=)(2())/ seq
2022-03-18 06:13:02 +00:00