2020-01-01から1年間の記事一覧

ループ変数をクロージャで包む

Common Lisp や ISLISP の do がループ変数を破壊的変更するのに対して Scheme では新しく環境を生成するのを知った時には「似て非なるものだ……」と思いました。 https://t.co/xKLGTMEzuA— 齊藤敦志 (@SaitoAtsushi) 2020年10月30日 Gauche で確認コードを書…

ハミング数

Gauche の data.heap モジュール を使ってハミング数を求めてみます。(効率は悪いです) (use data.heap) (use gauche.generator) (define (hamming n) (define (gen) (generate (^[yield] (let1 heap (make-binary-heap) (binary-heap-push! heap 1) (let lo…

ソート後の移動先インデックスを求める

配列をソートしたときの移動先インデックスを知りたい場合があります。 D 言語だと topNIndex 関数で知ることが出来ます。 import std; void main() { auto a = [99, 1, 100, 2, 150]; auto id = new int[a.length]; a.topNIndex(id, Yes.sortOutput); forea…