1 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:13] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/tech/kako/1058/10582/1058263391.html Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ 関連リンクは>>2-10 あたり
810 名前:デフォルトの名無しさん mailto:sage [04/10/16 18:27:24] >>797-799 > また、関数の中でマクロが定義されている場合、 これって macrolet のことを言いたいのかなあ、とふと思った。 > 実行とコンパイルがインターリーブしていて、マクロの展開関数の中 > から他の変数なんかも参照できる。その変数の値によって、展開の結果 > が変わるかもしれない...というふうに"思って"います。 これについては、こんな例もあるかな。 (defvar *foo*) (defmacro %foo (x) `(,(if *foo* 'car 'cdr) ,x)) (defun foo (ls key) (let ((*foo* key)) (%foo ls))) として、 (let ((ls '(a b c))) (values (foo ls t)(foo ls nil))) => ? , ? とりあえず今手元にある xyzzy では、コンパイルしないと a , (b c)、 コンパイルするとコンパイル時の *foo* の値によって a , a or (b c) , (b c) が、 更に *foo* の値が未定義だと (b c) , (b c) が返ってきました。 ……しかし、どうにも病的な例しか思い浮かばないなあ。
811 名前:デフォルトの名無しさん mailto:sage [04/10/16 20:26:58] letがないものが条件コンパイルのイディオムとして使われて てもよさそうだと思ったんだけど、そうでもないのかな?
812 名前:797 mailto:sage [04/10/16 22:43:41] コンパイル時の環境・値をキーワードにしてHyperSpecを必死になって 読んで、部分的な理解を得ました。 マクロ展開のようなコンパイル時に実行される式はevaluation env.のもと で評価され、そうでない本当に実行時に実行される式はrun-time env.のもと で評価される。で、evaluation env.とrun-time env.が同一である保証は 無いと。 私の場合、この二つが同一と仮定していたので、797の発言になったわけ ですね。実際は、run-time env.の中の束縛とは異なるかもしれない束縛を evaluation env.に加えてやることでコンパイルプロセスを実行プロセスから 分離していると。 後は、コンパイルの過程でevaluation env.がどのように構築されていくのか が解ればいいのですが、これも理解に時間かかりそう。 >>810 まだ文法に自信がないですが、こんなのなら病的ではないかと。 期待通りには振る舞わないみたいですが。 (defun debug-print (form value) ...) (defvar *do-debug*) (defmacro debug-value (form) (if *do-debug* (list debug-print `(quote ,form) form) form))
813 名前:Ruby >>>>>>>>>>>>>>>Scheme mailto:sage [04/10/17 06:09:54] Scheme を駆使して、「普通のやつらの上を行け」るのは、(少なくとも現状では、そして恐らく永久に)ごく一部のプログラマであって、 普通のプログラマが少しでも「普通のやつらの上を行け」るのは、Ruby になるような気がしています。 jp.rubyist.net/magazine/?0002-WCNewsPaper#l7
814 名前:デフォルトの名無しさん mailto:sage [04/10/17 06:26:35] 結局のところ、CommonLispでマクロを安全に使うには、 (1)トップレベルで定義する。関数内では定義しない。 (2)同名のマクロの再定義はしない。 (3)スペシャル変数等の環境で動作が変わるマクロは書かない。 ということですか?
815 名前:デフォルトの名無しさん mailto:sage [04/10/17 10:15:21] ものをちゃんと理解する、が一番じゃないかな。 まあ理解できないからこそ安全に〜とか言ってるんだろうけど。
816 名前:デフォルトの名無しさん mailto:sage [04/10/17 11:04:12] >>815 それなりの指針を与えることは、有益だとおもうけどどうかな。 だれだって最初は初心者な訳なんだし。
817 名前:デフォルトの名無しさん mailto:sage [04/10/17 11:11:48] >>816 指針としては、 マクロは単に式を変形する ・ソースを短かくするために書け ・いつ式が変形されたか気を付けろ(コンパイル時、実行時、再定義に注意) って基本を叩きこめば十分じゃないか?まだあるかな?
818 名前:デフォルトの名無しさん mailto:sage [04/10/17 11:52:18] >>816 > だれだって最初は初心者な訳なんだし。 これってよく使われるフレーズだけど全然言い訳になってないよな。 最初は初心者でも自力修得できる奴はなんぼでもいる。
819 名前:デフォルトの名無しさん mailto:sage [04/10/17 13:24:58] >>813 おそらくはマクロ等を駆使することで、 「問題領域における問題の記述とコードが同一になる」 Lisp/Scheme すげえ! って思うんだがどうよ?
820 名前:デフォルトの名無しさん mailto:sage [04/10/17 15:23:24] >>817 >・ソースを短かくするために書け これは同意できない。 結果としてソースが短くなるケースが多いとしても、ソースを短くすることは マクロを書く目的にはなり得ません。
821 名前:デフォルトの名無しさん mailto:sage [04/10/17 17:30:59] あんたにはならなくても俺はなるな
822 名前:デフォルトの名無しさん mailto:sage [04/10/17 17:59:41] 結果として短くなるのと、短くするのを目的として使うことを混同してませんか?
823 名前:デフォルトの名無しさん mailto:sage [04/10/17 18:11:15] >>818 わからないことを責めてはいけないとおもう。 わかろうとしないことだとしてもそうだと思う。 そういう人を取り込むことが言語のすそのを広げることになるんじゃないかな。
824 名前:デフォルトの名無しさん mailto:sage [04/10/17 18:14:49] >>821 , 822 ソースコードの性質によるのかな〜と思うけど、どうかな。 長く、広く使われるコードであれば、直感にあう抽象化を するためにマクロを使うべきだろう。 けど、テストコードなんかの場合はとにかく楽をするために マクロを使っても良いように思う。
825 名前:デフォルトの名無しさん mailto:sage [04/10/17 18:31:27] >>813 言語に「上下」があるわけではないと思うけどなぁ。 俺は ruby も好きだけど、scheme で書いてる時とは気分が違うよね。 なんつうか、ruby は relax しながら書くけど、scheme だと、集中して 研ぎ澄まされてく感じがする。抽象的だけどさ。
826 名前:デフォルトの名無しさん mailto:sage [04/10/17 18:34:07] (DQNニレススンナヨ)
827 名前:デフォルトの名無しさん mailto:sage [04/10/17 19:55:25] >>813 いいんだよそれで。「普通のやつら〜」が言ってるのは競争の激しい ベンチャー企業は最大限に生産性をあげないと生き残れない、そのために 最強の言語を使うべきだって言ってるんであって、その他大勢が 何を使おうが知ったこっちゃない。あの文章は生きるか死ぬかの極限での サバイバル術について語ってるんだ。そんな環境に置かれていないなら、 好みで言語を選べばいいのさ。
828 名前:デフォルトの名無しさん mailto:sage [04/10/17 22:38:11] 普通のプログラマにはjavaをお薦めします
829 名前:デフォルトの名無しさん mailto:sage [04/10/17 22:54:30] ノーマルプログラマにお薦め→java アブノーマルプログラマにお薦め↓
830 名前:デフォルトの名無しさん mailto:sage [04/10/17 23:01:54] C
831 名前:デフォルトの名無しさん mailto:sage [04/10/17 23:41:06] この掲示板は何言語で運営してるの?
832 名前:デフォルトの名無しさん mailto:sage [04/10/17 23:46:39] >>820 , 822 817 だけど(!= 821 ね) 煽りじゃなくて、どんな目的でマクロ書くのか教えてくれないか? おれはマクロに関してはソースを短くする事しか考えてないんだけど… あ、「短く」じゃなく「明快に」、と格好良く言えば伝わるかな? >>824 おれはテストコードは逆にマクロつかわないなぁ テストコードのテストなんてしたくないから コピペでも良いから単純に書く、どうせテストなんだし
833 名前:デフォルトの名無しさん mailto:sage [04/10/18 00:04:11] >>832 私の場合: * with-なんとか系 --- 最初と最後にお決まりの文句がある処理とか * 関数のインターフェイス --- (foo-format t "~A" obj1 "~A" obj2 ...) とやりたい.
834 名前:デフォルトの名無しさん [04/10/18 00:04:20] Ruby!!!!!!!!!!!!!!!!!!
835 名前:デフォルトの名無しさん mailto:sage [04/10/18 00:14:14] >>832 820でも822でもないですが イディオムや式に名前を付けるとき。短くなるとは限らない。
836 名前:デフォルトの名無しさん mailto:sage [04/10/18 00:31:51] >>835 確かに短くても慣れてないイディオムを包むマクロは書くことあるけど (そしてその名前が長い時もある) 何回も使えば少なくとも行数は短かくなる気がするけど… (本当はタイプ量も少なくしたいけど補完があるから気にしない場合はある) 良い例がありますか?
837 名前:デフォルトの名無しさん mailto:sage [04/10/18 00:48:40] マクロの例は,いろんなプログラムのソースがヒントになるなと思ったよ. 名前は忘れたけど数値計算のやつでは,型チェックをやってた. ソースを見ると,その関数の引数の型が一目瞭然になってるの.
838 名前:デフォルトの名無しさん mailto:sage [04/10/18 01:53:24] ソースのバイト数を減らすってのもいいけど (例えば call-with-current-continuation → call/cc, multiple-value-bind → mvbind など), 重要なのは定型的コード内のパターンを抽出して構文要素数を減らすことだぜ? ただ,inline関数で実現できるならその方がいい. "On Lisp" を読めば抽象化手段としてマクロを使うべきかどうかの判断規準(の一例)が示されてるけど...
839 名前:デフォルトの名無しさん mailto:sage [04/10/18 06:36:49] cgiにschemeが使える無料鯖ってあるの?
840 名前:デフォルトの名無しさん mailto:sage [04/10/18 07:31:33] >>838 が正しいな、おかげですっきりしたぜ
841 名前:デフォルトの名無しさん mailto:sage [04/10/18 08:58:39] さんざん既出だがSchemeの基本構文要素なんて10個に満たないが、 全く不便に感じないのは強力なマクロの記述能力があるからだよ。 処理系がI/Fを開放してればマクロを通してそのままマシンコードに落とせるし、 コンパイラとマクロの間には区切りがない。 LISPは本来処理系のコンパイラが貧弱でも後付でカバーできる程の能力を 秘めているが、あまりそれを認識してる奴はいないみたいだな。 ユーザーにスキルがあれば自力でinline-expandやlambda-liftingの様な プリコンパイルが簡単に追加できる。 コアの作りこみを最小限とすれば新しい処理系はすぐに完成する。 人間で言うと脳や神経だな。骨格や肉付けはすべて後回しでいい。 コアを何度も作ってる奴は、残りをすべて使い回しが利くS式で記述する筈だ。 だからGaucheの様なCでなんでもかんでも書く方針はちょっといただけないな。 確かに労せず速い処理系になるだろうが、それは処理系固有のモノになってしまい、 LISPの自己拡張性を否定しかねない。 どのみちブートストラップの真似事してるんだからVMに渡すプリコンパイラぐらい Scheme自身で書いてみろよ。パフォーマンスにさほど違いはないから。 と、Gaucheのソース流し読みして思った次第。
842 名前:デフォルトの名無しさん mailto:sage [04/10/18 09:24:51] I/Fって何?
843 名前:デフォルトの名無しさん mailto:sage [04/10/18 09:28:23] それは処理系固有のモノになってしまい、LISPの自己拡張性を否定しかねない。 ってどういう意味? 他の処理系でもマクロで拡張するんなら処理系固有とか関係なく思えるが。
844 名前:デフォルトの名無しさん mailto:sage [04/10/18 09:35:03] >>841 Gauche開発の動機と目標を知っててあえて言ってる?
845 名前:デフォルトの名無しさん mailto:sage [04/10/18 09:56:30] >>844 これか? www.shiro.dreamhost.com/scheme/gauche/memo-c-j.html
846 名前:841 mailto:sage [04/10/18 10:27:07] >>842 ぐぐれ >>843 処理系に固定化され、固定化されたコードはそれ以上進化する余地なくなるということ。 >>844-845 そのリンクの文章のことではなかったけど、その中から異論を唱えると、 >実行時に、その言語のための環境(スクリプトライブラリ、初期化ファイルなど)を > フルセットで持てるとは限らない。 最悪の場合、アプリケーションはそのバイナリ > 単体で動作することが要求される。 これは単にアイデアが枯渇しているだけだろう。 実行ファイルに環境を埋め込む手段はいくらでもあるし、さらにその上に 環境の永続化という手段もある。 >アプリケーションの実行の主体はC/C++で書かれたコードで、 > その中から頻繁にちょっとしたリスト処理や文字列処理なんかが呼び出される。 これはevalそのものやVM、マシンコードの入り口を用意していれば済む事。 それに結局GCを伴うので、現実的には外部から頻繁には呼び出せず、一括して呼び出す方針になりがち。 そもそも外部のコンパイラが必要な時点でプロダクション環境とやらには論外だろう。 >むしろ、 memqなんて基本的なパーツはCで書いとくべきなんだ。 memqの様なすぐ代替が利く極端に小さいパーツならこの手も有効だろうが、 少しでも大きな処理になるとこの思想は破綻する。作者もそれはわかってるみたいだが。 結局実際は実装が二極化し、複雑性が増加しただけだろう。 組み込みスタブ関数郡のメンテナンス性の悪さを見ればわかる。 こんなところか。
847 名前:デフォルトの名無しさん mailto:sage [04/10/18 10:39:16] ぐぐってもわからんぞ。
848 名前:デフォルトの名無しさん mailto:sage [04/10/18 10:40:26] じゃあ、あんたがSchemeの処理系書いて配ればいい。
849 名前:デフォルトの名無しさん mailto:sage [04/10/18 10:44:37] 処理系に固定化され、固定化されたコードはそれ以上進化する余地なくなるということ。 進化させたかったら処理系に手をいれればいいじゃん。
850 名前:デフォルトの名無しさん mailto:sage [04/10/18 10:53:03] >>848 公開が面倒なだけでそういう処理系は数年前に作ったよ。 >>849 それは処理系の完成度が低いと暗に示しているにすぎないだろ。 商用にするなら論外の提案。 顧客毎に固有化して、いったい誰がメンテするんだ?
851 名前:デフォルトの名無しさん mailto:sage [04/10/18 11:03:16] 公開してなければただの妄想言語 顧客ごとの固有化はマクロを使えばいいだろ。
852 名前:デフォルトの名無しさん mailto:sage [04/10/18 11:28:06] 841は組み込み系とかはやったことないんだろうなぁ
853 名前:名無しさん@お腹いっぱい。 mailto:sage [04/10/18 12:11:42] GaucheがCでの実装を多用しているのは、現バージョンでの実用性を考えると仕方のない部分が多いのではないだろうか。 VMでは各インストラクションごとにテーブルを使った間接分岐が行われるが、この時、ほぼ毎回分岐予測を失敗することになる。(PC用で、これの分岐予測をうまく行ってくれるプロセッサーは無いと思う) 今のプロセッサーでこのペナルティーはでかすぎる。1ワードのデータのLOADやPUSHを行うたびにパイプラインがフラッシュされるんだから... つまり、速度を出すにはVMのインストラクション数を減らすことが重要ということになり、そのためにCで書く部分が多くなるといったところではないだろうか。 根本的な解決にはネイティブコードに落とす必要があるが、これとインタラクティブな環境を両立するのは難しい。 商用のChez Schemeならそれが出来ているが、個人が作っている処理系でそれが出来ていなくとも、あまり乱暴な言葉遣いは良くないと思う。 真面目な開発者ならネガティブな意見は大歓迎だと思うし、それは遠慮なく伝えていいと思う。 変な信者のラブレターよりよっぽと嬉しいだろう。でも礼儀は忘れないでほしい。
854 名前:824 mailto:sage [04/10/18 13:55:18] >>832 へええ、おもしろい。 私もテストコードにはややこしいマクロはかきませんが、 いまいち自然じゃない、長くは覚えていられないような 展開をするマクロをかくことはあります。 以下の2つがその主な理由です: 1) テストはだいたい1ファイルに閉じてるので読めばわかると思う 2) テストは繰り返しや比較が多いのでなるべく自動化したい
855 名前:デフォルトの名無しさん mailto:sage [04/10/18 15:42:44] >そのためにCで書く部分が多くなるといったところではないだろうか。 話がつながってない気が
856 名前:デフォルトの名無しさん mailto:sage [04/10/18 17:13:28] >>855 「VMで実行するインストラクション数を減らすために処理系やライブラリー関数をSchemeでなくCで実装する」を意図しておりました。 説明がへたですまぬ。
857 名前:850 mailto:sage [04/10/18 18:27:29] >>851 うぷしてみたよ。 ttp://syobon.zive.net:85/src/syobon10968.zip.html サンプル読めば簡単な窓ぐらいは作れるかもしれない。
858 名前:850 mailto:sage [04/10/18 18:35:35] 失敗した。 syobon10969.zipね。
859 名前:デフォルトの名無しさん mailto:sage [04/10/18 19:26:48] schemeのプリミティブを使ってマクロを組み立てれば強力な記述力がある 構文を手にできるというのは別に誰も反対していないと思う。 しかしいくつか問題があって、一つはそのような構文を作るのに多用する継続の 利用コストが小さくないこと。 もう一つは共通語彙が貧弱なこと。SRFIで整えられてきてるけど、 各自で構文を作るのが実現できることと、それが実用上利益になることとは別問題。 それにSchemeコアが万能というわけじゃない。SRFIの多くは 結局使い勝手のために処理系の拡張を必要とするものが多い。 だから理念としてはScheme好きだけど実際に使うのはCommon Lispだったりする。
860 名前:デフォルトの名無しさん mailto:sage [04/10/18 20:42:09] 本人やる気ないなんて言わずに発展させていってくれよ。 面白そうじゃないかコレ。
861 名前:デフォルトの名無しさん mailto:sage [04/10/18 21:05:52] 本人にやる気がないのなら他の人が発展させていけばいい。
862 名前:デフォルトの名無しさん mailto:sage [04/10/18 21:51:10] >>850 ソースくれよ。
863 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:00:14] やーだよ
864 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:05:07] が〜ん。 Gaucheが実行環境の永続化(?)をサポートするのをまとう。 構想はあると聞いてるので...
865 名前:デフォルトの名無しさん mailto:sage [04/10/18 23:47:37] おい、このスレからチャレンジングな Scheme 実装が生まれようとしてるのか?! 面白くなってきたと思わないか?おまいら!
866 名前:832 mailto:sage [04/10/18 23:57:05] >>854 なるほど確かにマクロでもそのファイルだけで閉じてれば良いかも でもテストコードに関しては、例え繰り返しとかあっても抽象化する必要は無い、 即値も平気で書いて ok!とも思うけど それにしても Lisp ほどテストがやりやすい環境も無い! 何たって関数単位で書いたらすぐ試せるし
867 名前:デフォルトの名無しさん mailto:sage [04/10/19 07:33:57] >>857 実行速度が結構出るね。 cygwin上のgoshよりほとんどのケースで速かったよ。 compiled-closureってことはeval前にコンパイルだよね。 永続化も説得力のある代物でした。 正式に公開したらかなりいけてますよ。
868 名前:デフォルトの名無しさん mailto:sage [04/10/20 15:55:46] Lisp Machineで作業しているところのビデオ。既出だったらゴメソ。 lemonodor.com/archives/000103.html lemonodor.com/archives/000441.html これを見て、「Lisp Machineでは、コンパイラのエラーメッセージでさえオブジェクト」 という意味がすこしわかったよ。
869 名前:デフォルトの名無しさん [04/10/21 12:54:30] >>850 再うpきぼんぬ
870 名前:デフォルトの名無しさん mailto:sage [04/10/21 22:27:06] 低レベルな質問で済みません。 CLISP で fork(2) みたいに clisp のプロセスイメージをコピーするのってどうやれば良いので しょうか? fork(2) して子プロセスで S 式を実行し、結果を親プロセスとやり取りするような プログラムを書きたいのです。ext:run-program で CLISP 自体を実行してやるのが普通なので しょうか? CMUCL ではこんな風に出来る(出来た?)らしいです。 cl-cookbook.sourceforge.net/os.html#fork-cmucl
871 名前:デフォルトの名無しさん mailto:sage [04/10/22 07:48:15] >>857 再うp!再うp!再うp!
872 名前:デフォルトの名無しさん mailto:sage [04/10/25 00:22:54] lispでbottom upプログラミングしてると確かに 綺麗になるんですけど、他人には読めないコードに なったりしません? 他人に読めないのは綺麗じゃねーって言われるかも しれませんがやはりそんな感じがします。 抽象的なロジックでも、ほとんど組み込みのリスト操作や map操作で実現できてしまうのが原因だと思うのですが、 (他の言語だといちいち名前をつけて抽出することになる) 皆さんはそういうこと感じませんか?
873 名前:デフォルトの名無しさん mailto:sage [04/10/25 00:51:44] >>872 bottom upの意味が間違ってないか? bottom upはロジックや定型処理を抽出してツールを 作ってそのツールを用いて本体を組むんだが。 そのツール(関数やマクロ)には当然名前がついている。 組込みのリスト操作やmapが生ででてくるのはbottom upとはまた別。
874 名前:デフォルトの名無しさん mailto:sage [04/10/25 01:14:56] LISP 〔原書第3版〕 1巻 を読んでみたいんですが 手に入れる方法ってありますか? 店頭在庫ってまだあるんでしょうか?
875 名前:デフォルトの名無しさん mailto:sage [04/10/25 02:29:17] 大学の図書館には転がってるだろ。
876 名前:デフォルトの名無しさん mailto:sage [04/10/25 09:49:57] >>874 漏れも読みたい!! >>875 学生じゃないもん!!
877 名前:デフォルトの名無しさん mailto:sage [04/10/25 10:12:16] 学生でなかったら別に読まなくてもいいんじゃないの? 池袋のジュンク堂で2巻は見た。 実は俺も読みたいので、引きこもりをやめて学生になる春まで待つつもり。
878 名前:デフォルトの名無しさん mailto:sage [04/10/25 10:15:19] 工業系の図書館に普通においてあるぞ
879 名前:デフォルトの名無しさん mailto:sage [04/10/25 21:31:27] >>876 それって,カバーを外すと緑色で,ピラミッドみたいなのが彫ってある本ですか? まだ Lisp が書けなかったとき,古い本なのにオブジェクトシステムが 載ってて凄い本だと思いました. 郊外の学部の図書館 (うちの大学なんだけど) なら入口でカードが必要なかったりします.
880 名前:デフォルトの名無しさん [04/10/27 09:42:30] Allegro CL 7.0出荷age 相変わらずパンピーには買えない値段なのかな...
881 名前:デフォルトの名無しさん mailto:sage [04/10/27 10:14:24] C#みたいにGUIやWEBを組めますか?
882 名前:デフォルトの名無しさん mailto:sage [04/10/27 14:21:06] GUIビルダもサーブレットコンテナもありますがなにか?
883 名前:デフォルトの名無しさん mailto:sage [04/10/27 16:56:40] The Revised R6RS Status Report ttp://www.schemers.org/Documents/Standards/Charter/2004-10-13.pdf
884 名前:デフォルトの名無しさん mailto:sage [04/10/27 17:02:08] 正直、Schemeは今のままでいいと思う。
885 名前:デフォルトの名無しさん mailto:sage [04/10/27 17:12:57] まあ、srfi もあるしね。
886 名前:デフォルトの名無しさん mailto:sage [04/10/27 17:28:34] モジュールの標準化は激しいバトルになるだろうな〜 できるんかいな?
887 名前:857 mailto:sage [04/10/27 21:00:29] >>869 一部不具合を修正 ttp://syobon.zive.net:85/src/syobon11901.zip.html
888 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:19:19] moduleとobject systemは、srfiかs6rsかどっちかには入ってほしい... でも、886の言うとおり激しいバトルになりそうな分野なので期待薄か
889 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:30:48] そのあたりは普通にやろうとしても一筋縄でいかない部分もあるしね ましてやRxRSとなると…
890 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:37:40] PLTかbiglooのを丸々取り込んじまえばいいんだよ。 デザインに関しては、この二つが抜けてるから。
891 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:55:58] どっちのを取り込むの? その設計で本当にいいの? そもそも取り込む必要あるの? 等々…
892 名前:デフォルトの名無しさん mailto:sage [04/10/28 11:49:07] www.schemers.org/Documents/Standards/Charter/2004-10-13.pdf > module system > A module system will definitely be part of R6RS. We have dis- > cussed this topic extensively and are now converging on a spe- > cific proposal > object-oriented programming > Issue left for R7RS
893 名前:デフォルトの名無しさん mailto:sage [04/10/28 12:56:09] LISP 1 図書館で複写してもらおうと思ったけど 1枚25円かよ・・・ たけーorz
894 名前:デフォルトの名無しさん mailto:sage [04/10/28 21:58:56] (define x 'foo) (display '(x)) -->(x)#<undef> (display (list x)) -->(foo)#<undef> クォートって手続きlistの単なるシンタックスシュガーですよね にも関わらず前者で変数名がプリントされちゃうのは仕様ですか? writeやcons(とドット対)も試したんですけど、同じ結果です。(gaucheにて)
895 名前:デフォルトの名無しさん mailto:sage [04/10/28 22:05:35] > クォートって手続きlistの単なるシンタックスシュガーですよね この時点で間違い。
896 名前:デフォルトの名無しさん mailto:sage [04/10/28 22:05:47] はあ?
897 名前:デフォルトの名無しさん mailto:sage [04/10/28 22:44:35] >>894 (quote x) => X (list x) => unbound variable `X'. まともな入門書を読みたまえ...
898 名前:デフォルトの名無しさん mailto:sage [04/10/28 22:52:55] ゴメンナサイ
899 名前:デフォルトの名無しさん mailto:sage [04/10/29 11:45:58] (find (lambda(x)(equal? 'b x)) '('a 'b 'c)) #f (find (lambda(x)(equal? "b" x)) '("a" "b" "c")) "b" なぜ前者は#fになるんでしょうか?
900 名前:デフォルトの名無しさん mailto:sage [04/10/29 11:57:44] シンボルbとリスト(quote b)を比べてるから。
901 名前:デフォルトの名無しさん mailto:sage [04/10/29 12:14:35] >>900 理解できました。ありがとう。
902 名前:デフォルトの名無しさん mailto:sage [04/10/31 08:12:34] NOW Available Allegro CL 7.0 普通にライブラリ増えた感じだね Allegro Prolog だけは謎だけど
903 名前:デフォルトの名無しさん mailto:sage [04/10/31 17:53:54] vism
904 名前:デフォルトの名無しさん mailto:sage [04/10/31 19:15:31] >>902 > Allegro Prolog だけは謎だけど Franzって基本的に顧客ドリブンだから、「Prologホシイ」って 客がいたんじゃないの?
905 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:18:57] Franzて従業員何人ぐらい? 商売成り立ってる?
906 名前:デフォルトの名無しさん mailto:sage [04/11/01 09:03:48] 製造はカナーリ少人数でやってそうなイメージ
907 名前:デフォルトの名無しさん mailto:sage [04/11/01 11:12:22] matz も書いていたけど言語ビジネスで 食っているのは MS くらいじゃないか。
908 名前:デフォルトの名無しさん mailto:sage [04/11/01 13:06:49] MSのは言語ビジネスじゃなくて殿様ビジネス
909 名前:デフォルトの名無しさん mailto:sage [04/11/01 13:21:45] 言語とOS、セットにならないとまともな商売にならないってことだろうねえ 本当はそこにハードも一緒だったはずなんだけど、MSは特異な例ということで。 そこでLISPマシンですよ!!w
910 名前:デフォルトの名無しさん mailto:sage [04/11/01 17:57:47] Sun とか Apple も MS 同様に OS + 言語 ( もしくは Office スイート ) で 殿様ビジネスできたか、というと違うのでやはり能力の違い。