[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/26 12:58 / Filesize : 286 KB / Number-of Response : 995
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

CommonLisp Scheme Part11



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 スイート ) で
殿様ビジネスできたか、というと違うのでやはり能力の違い。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<286KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef