ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

λの会コミュの多次元配列はどう扱うのでしょう?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
とりあえず初期化するプロシージャだけ書いてみました。

----
gosh>
(define dim-two
(lambda (x y)
(define dim
(lambda (x)
(cond
((zero? x) '())
(else (cons '() (dim (- x 1)))))))
(cond
((zero? y) '())
(else (cons (dim x) (dim-two x (- y 1)))))))
dim-two
gosh> (dim-two 3 5)
((() () ()) (() () ()) (() () ()) (() () ()) (() () ()))
----
これは、2次元配列専用です、もっと(CLISPのmake-arrayのように)汎用化され、きれいな書き方ができるはずなのですが、今のところこの辺が限界です(--;
もっと、きれいな書き方はあるでしょうか?


さらにこの後、次数を指定して、配列にリード、ライトをする関数を書きたいと思ってます。
http://www.icadweb.com/bbs/kb.cgi?b=i_lisp&c=t&id=368
を見る限り、配列からリードするプロシージャはlist-ref等で楽に書けそうですが、writeするプロシージャは難しそうです。何かschemeで書くに当たっていい方法はないでしょうか?

宜しくお願いしますm(_ _m

コメント(2)

SRFI-25に多次元配列ライブラリがあります。
Gaucheなら、gauche.arrayモジュールがSRFI-25のスーパーセットになって
いて、リード/ライトもサポートしてます。
ありがとうございます。
早速調べてみます。
こういう機能は、SRFIをちゃんと探せば見つかったんだと
思います。既にありそうな機能はもうすこしSRFIを探してから
質問したほうがよさそうですね(汗
お手数かけて申し訳ありませんm(_ _;m

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

λの会 更新情報

λの会のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング