Fulyn
084(オハヨー)
main
print(084)
end
ユークリッドの互除法
gcd :: [int => int => int]
main
result = gcd(1547, 2093)
print(result)
end
gcd (x, y)
// x > yになるように入れ替える
tmp = x
x = ? x < y
| true -> y
| false -> x
y = ? tmp == x
| true -> y
| false -> tmp
// 非0なら再帰
? x % y
| 0 -> x
| () -> gcd(y, x % y)
end
1~10000の合計
main
sum = x => y => (x + y) * (y - x + 1) / 2
sum(0, 10000)
end
for文っぽいのの定義
for :: [int => [int => int] => [int => int] => [int => int] => int]
for(x, comp, next, exec)
? comp(x)
| true -> exec(x)
| false -> $
1 + for(next(x), comp, next, exec)
end
グラデーション(for文っぽいのの使用)
junkapi :: include("junkapi.fl")
draw :: [int => int => int]
c :: int
main
c = 0
junkapi.openwin(256, 256)
for(0, i => i < 256, i => i + 1, x => ~
for(0, j => j < 256, j => j + 1, y => ~
draw(x, y) ~
) ~
)
end
draw(x, y)
junkapi.drawpoint(0, x, y, c)
c = c + 0x100
end
指定した数までフィボナッチ
fibo :: [int => int => int => int]
main
fibo(0, 1, 1000)
end
fibo(x, y, limit)
print(x + y)
? x + y < limit
| true -> fibo(y, x + y)
| false -> 0
end