PefungeでGを使わずに階乗を書いてみる
なんかλ計算みたいになってきた…
&\v v$|&&4:! ;; [G] G=(stdio, print_int, fact, 4) ============================================== print_int n r ============================================== v|>&\:?v ;; [G', G, stdio, print_int, fact, 4] !:|$$:?v ;; [G', G, stdio, print_int, n r] ^ $\$$$$|\:_v$\$"0"\2! ;; [G', G, stdio, "0", r, 2]! >6v ;; [G', G, stdio, print_int, r, n, 6] !:|$$$$$$::?v ;; [G', G', <G'>] G'=(G, stdio, print_int, r, n, 6) !:|$$$$\$\:?v ;; [G', stdio, G', <G'>] v?:\$\$\$\$$|:! ;; [G', stdio, r, G', <G'>] !:|$$$\$\$\:?v ;; [G', stdio, r, print_int, G', <G'>] v&$\$\$\$\$\$|:! ;; [G', stdio, r, print_int, n, r'] !2\!#_:/*25\|?52*%"0"+\$\2! ============================================== fact n r ============================================== v|>&\:?v ;; [G', G, stdio, print_int, fact, 4] !:|$\$\$:?v ;; [G', G, fact, n, r] ^ $\$$$|\:_v$11! ;; [G', G, fact, r, 1, 1]! 5 !:|$$$$$::?v ;; [G', G', <G'>] G'=(G, fact, r, n, 5) v?:\$\$\$$|:! ;; [G', r, <G'>] !:|$$$\$\:?v ;; [G', r, fact, <G'>] v&\-1:$\$\$\$\$|:! ;; [G', r, fact, n-1, n, r'] !2$\|?*\$\$1! ============================================== print (fact ?) ============================================== >:! >:?| >2! >$5&| >2! >?\$\$&| >?$$01-&2!