Gauche > Archives > 2009/09/27

2009/09/27 13:10:02 UTCshiro
#
renameとprefixは順番をどちらにもしたい場合があるんだな。
#
(import (rename (prefix lib p:) (p:a b) (p:c d))) ; renameしたものだけprefix無しで、他のやつはprefixつきで見せたい場合
#
(import (prefix (rename lib (a b) (c d)) p:)) ; すべてprefixつきで見せたい場合
2009/09/27 13:41:06 UTCkoguro
#
r6rsの仕様をきちんと読んだり、規格制定の流れをちゃんと追えば分かるのかもしれないけど、なんか import の rename と prefix って微妙にやることがかぶっているような感じがして、冗長に見える。
2009/09/27 13:43:00 UTCshiro
#
renameは特定の名前だけ変えたい時、prefixは全部の名前を変えたい時、じゃないでしょうか。
2009/09/27 13:43:32 UTCkoguro
#
うーん、そうなんですが prefix って rename + 「なんかの機能」で実現されるべきものなんじゃないかな。
2009/09/27 13:43:50 UTCshiro
#
あるライブラリからふつうにimportしたいんだけど、ひとつの名前fooだけが他のライブラリとかぶってるからx-fooにしたいとか。
#
renameでprefixは実現できるけど全部の名前について書かないとならない
#
ああ、パターンマッチみたいのを許せばいいのか。
#
多分仕様が膨れるのを嫌ったんでしょうねえ。
2009/09/27 13:45:27 UTCkoguro
#
そうですねぇ。
2009/09/27 13:45:47 UTCshiro
#
まあ、r6rsのライブラリ仕様が中途半端って印象はずっとあります。
2009/09/27 13:46:07 UTCkoguro
#
ただ、何となく「この機能セットがあれば、組み合わせでどんな事態にも対応できそうだ」という感覚がちょっと乏しいように思えました。
2009/09/27 13:46:08 UTCshiro
#
上で「全部の名前について書かないとならない」って書いたけど、
#
gaucheのextendみたいに、「既存のライブラリにちょっとだけ付け足したライブラリを作りたい」って思うと
#
既存のライブラリがexportしている名前を全部またexportに並べて書かないとならない。
#
これもMLで指摘した気がするけどフォーマルコメントにしなかったんだっけな。
#
なんか、直すにしてもどこから手をつけようかと考えあぐねて手が出せなかったような気がする。
2009/09/27 13:52:47 UTCkoguro
#
うまく表現できないけど「プリミティブ」っぽさが足りないのかな。
2009/09/27 13:54:42 UTCshiro
#
レゴブロック的な感じ?
2009/09/27 13:56:08 UTCkoguro
#
うーん、そうですね。偉そうな言い方になってしまいますが、なんか中途半端にユースケースを洗って作ったような感じがして、いざ使うと「機能が足りない」とかなりそうで、いざそうなると手も足も出なくなってしまうような気がする。
2009/09/27 14:00:11 UTCkoguro
#
「これらの機能を組み合わせればなんとなかりそう」という感じもしないし、「これだけ機能があればさすがに大丈夫だろう」という感じもないので、ちょっと不安に思いました。ただ、この枠組みを使い込んでないので、単に的を外しているだけかもしれません。
#
まあ、ぐだぐだ言わずにコードを書けということかな。