Ruby

各言語のprintfはロケールに依存するか

言語やライブラリによっては、printf系関数の出力がロケールに依存する場合があります。たとえば、ロケールによっては小数点がカンマで出力される場合があります。手元の各環境で調べたところ、次のとおりでした。 ロケールに依存する: POSIX, Java, Lua ロ…

継続パズルyin-yangの回答

Shiroさんに教えてもらったyin-yang puzzleの回答。課題のプログラムは次の通りです。 (let* ([yin ((lambda (foo) (newline) foo) (call/cc (lambda (bar) bar)))] [yang ((lambda (foo) (write-char #\*) foo) (call/cc (lambda (bar) bar)))]) (yin yang)…

第一級の継続とローカル名前環境の変更は相性悪い

限定継続であれ、無限定の継続であれ、第一級の継続と、ローカル名前環境の変更は相性が悪い、ということに気づきました。お酒を飲んだのでたぶん思考がゆるいですが、だらだら書きます。 名前環境の変更 たとえば次のRubyプログラムは、「x = 1」によってロ…

いろんな言葉で竹内関数

Kink #!/usr/bin/env kink &tak = { ( &X &Y &Z ) ( X <= Y ).then { Y } { tak( tak( X - 1 Y Z ) tak( Y - 1 Z X ) tak( Z - 1 X Y ) ) } } [ &X &Y &Z ] = ARGS.map { __.int } &TAK = tak( X Y Z ) print_line: format: 'tak( #X #Y #Z ) = #TAK' Scheme…