gauche

Gaucheで指定文字を指定回数繰り返す書き方

背景 Gaucheで指定した文字を指定した回数だけ繰り返したい。 Rubyでいう"a" * 5、PHPでいうstr_repeat('a', 5)のようなこと。 irb(main):002:0> "a" * 5 => "aaaaa" 目的は受け入れテストにて「x文字以上ならエラー」というケースでx文字を簡単に用意したか…

GaucheでRubyのArray#product同等の関数

結論 Gaucheではcartesian-productを使うと良い。 以下は、この関数を見落としていたことによる悪戦苦闘の記録。 背景 業務中にちょっとしたスクリプトで「複数の配列の直積」が必要になった。 例: 入力: [[1, 2], [3, 4], [5]] 出力: [[1, 3, 5], [1, 4, 5]…

Gaucheの無名関数について - lambda, ^, ^c, cut

背景 とあるネット記事のGaucheのコードを読んでいて^ _ ( 何か処理 )というのがあってこれは何だと思って調べたメモです。 ^自体は知っていたのですが、^ _という別の記法もあるのかなと不思議に思ったので。 無名関数 公式ドキュメント: 4.3 手続きを作る …

Gaucheで指定した数の数字の配列を作るiota

「1から10までの配列から奇数だけを取り出す」というお題を見てGaucheだとこう書くかなって考えた時に、Gaucheで「数字を指定して範囲を取り出す関数って何だっけ」となったのでメモ。 iota iotaだった。最初rangeとかtimesとかの単語でドキュメント引いて見…

Gauche - ファイル読み込みのサンプル

gaucheでファイルを読み込むやり方のメモ。 一行ずつ読み込んで処理する (call-with-input-file "/Users/kanno/tmp/codes/a.scm" (lambda (in) (port-for-each (lambda (line) ; 1行ずつ行う何かしらの処理 (print line)) (cut read-line in)))) 一度に読み…

GaucheのドキュメントをDashに追加する

背景 Gaucheのドキュメントを見るにはEmacsのinfoから引けるようにしたりブラウザで見たりとあるけど、個人的にはDashで引けると助かる気がしたので追加してみた。 手順 GaucheのドキュメントHTMLを作成 僕はVM上のcentosでHTMLを作ったけど、Macでやるのも…