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


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

CommonLisp Scheme Part10



1 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:10]
過去スレ
Part1: piza2.2ch.net/tech/kako/987/987169286.html
Part2: pc.2ch.net/test/read.cgi/tech/1002584344/
Part3: pc.2ch.net/test/read.cgi/tech/1008220265/
Part4: pc.2ch.net/test/read.cgi/tech/1016211619/
Part5: pc3.2ch.net/test/read.cgi/tech/1023091882/
Part6: pc3.2ch.net/test/read.cgi/tech/1031560687/
Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html
Part8: pc2.2ch.net/test/read.cgi/tech/1058263391/
Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/

前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、
標題にCommonLispと付けておきました。
Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも
稀なので問題はほとんどないかと思います。

関連リンクは>>2-10あたり


101 名前:デフォルトの名無しさん mailto:sage [04/02/08 10:44]
win32oleできるScheme処理系ってありますか?
ググったらそれらしいのが出てきたけど、いまいち手がかりが
つかめず…


102 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:03]
>>101
COM/ActiveX なら DrScheme (MysterX) がサポートしていますけど。
実際にはどういうことをやりたいのかな? ドキュメントへのオブジェクト埋め込みかな。

103 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:05]
>>102 WSH の完全な代替.ナンチャッテ

104 名前:100 mailto:sage [04/02/08 13:05]
えーと、煽りと間違われると無念なので、少し説明。

俺は、オープンソースライセンスやパブリックドメインについての議論を
多少なりともフォローしてきているつもりです。

今後、cmuclを使用する上で、何かライセンス的にハマるといやなので、
パブリックドメインに置かれているソフトウェアが誰にどういう面で
障壁になっているのか教えてくれませんか?

>>92
> 「元のライセンスを保つためには,伝播性をもつライセンスのものと組み合わせられない」
> ということなら,GPLなどの伝播性が問題ということでしょう.
どのように組み合わせるかによって、GPLが持つ伝播性の影響がでるかどうか変わるでしょう。


105 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:11]
>>100
つまりこういうことじゃないかな。
GPL,LGPLみたいなライセンスが使われているライブラリ(など)は、
まったく制限のないパブリックドメインのソフトウェアには使えないと。

例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、
cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。
そして、それらが現状の(パブリックドメインの)cmuclに取り込められるかどうか、をね。

オープンソースの現状は
sourceforge.net/softwaremap/trove_list.php?form_cat=14
になっているわけで、GPL/LGPLキモイとか言っても、無視することはできないだろ。

106 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:14]
要するにこの場面で極論するとcygwinが使えないのが障壁とw

まあ、パブリックドメインなら派生ソフトウェアは自由にライセンスを選べるわけだし、
気に入らないなら派生作ってGPLにしたっていい(保守する人が少なければ廃れるのがオチだけど)。
だから、そこまで深刻な問題でもないよな。

107 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:20]
SFUが.NETみたいに標準搭載になればいいのにねえ。
WinFXでWin32を順次置き換えていくらしいから、
もう既にWin32で囲い込みする必要もないだろうに。
サポートの手間がメンドクサイからまあ、なさそうだけど。

108 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:37]
>GPL,LGPLみたいなライセンスが使われているライブラリ(など)は、
>まったく制限のないパブリックドメインのソフトウェアには使えないと。
まず、自分で使用するだけなら法的に問題なく使えるよね。
ソフトウェアを配布する場合でも、パブリックドメインになっている
ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、
問題なく使えて配布できるでしょ?

> 例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、
> cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。
パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。
これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
FSFと一蓮托生でいいのか。

そこらへんを考えると、パブリックドメインにあるソフトウェアが障壁になっているという
言い方はあべこべだと思う。

109 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:45]
GPL厨的には、プロプラエタリで非オープンなものに転用できてしまう
パプリックドメインなソフトは、GPLの普及にとって障壁になっていると
考えられるんじゃないの?



110 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:48]
ああ、そういう視点ですか。

111 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:16]
>まず、自分で使用するだけなら法的に問題なく使えるよね。
もちろんそう。
これはデベロッパサイドの問題。すなわち>>89の"cygwinが使えない"とか他にも"readlineが使えない"とかね。

>ソフトウェアを配布する場合でも、パブリックドメインになっている
>ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、
>問題なく使えて配布できるでしょ?

GPLでリリースしたらそれはGPLのソフトウェアであってパブリックドメインではないからそもそも前提が違う。
CMUCLプロジェクトがGPL/LGPLを選択するか否かという問題ではcygwinの件で既に蹴っているではないか。

>パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。

これも上に同じ。ライセンスを変更したらそのソフトウェアはパブリックドメインではない。
そのソフトウェアがパブリックドメインを続ける限りはcygwinもreadlineも使えないし、"GPLに変えたら使えるじゃん"というのは"cmuclがパブリックドメインを続けようとしていて、その方針をとることによるcmuclプロジェクトへの制限"という話のすり替え。

>これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
>FSFと一蓮托生でいいのか。
明らかなプロバガンダ。GPLでリリースしたソフトウェアはFSFに支配されるようになるみたいな言い方だな。


112 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:39]
>>99
スマソそれは読んだ事あるんだ。で、ついに継続ベース Web アプリケーション鯖デターーー
とおもったんだけどサンプルとかあんま載ってないからさ。こうスゲーとわかるような
サンプルキボンヌ。

113 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:51]
>GPLでリリースしたらそれはGPLのソフトウェアであってパブリックドメインではないからそもそも前提が違う。
いいたいことが分かりにくいな。cmuclプロジェクトに加わっていない人が、
cmuclの成果だけ持って来て、ライセンスだけGPLにして定期的にリリースするとか
できるでしょ? つまり、フォークしてもGPL側はいつでもパブリックドメインのコード
を利用できると。

>CMUCLプロジェクトがGPL/LGPLを選択するか否かという問題ではcygwinの件で既に蹴っているではないか。
これも分かりにくいな。CMUCLプロジェクト内での議論でcygwinはライセンスが問題だから
cygwin使うのよそうやという意見の一致はないと思うよ。ただ、cygwin使ったらパブリックドメイン
のままにはできないかもねという認識があるだけ。

> そのソフトウェアがパブリックドメインを続ける限りはcygwinもreadlineも使えないし、
> "GPLに変えたら使えるじゃん"というのは "cmuclがパブリックドメインを続けようとしていて、
> その方針をとることによるcmuclプロジェクトへの制限"という話のすり替え。
なんか陰謀説みたいな話だけど、単純にcygwinかreadline使いたい人は使えばいいし、それを
配布したい人は、GPLかLGPLでcmuclをフォークすればいいだけでしょ? だれもだれかを制限しようと
なんてしていないでしょ?

> >これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
> >FSFと一蓮托生でいいのか。
> 明らかなプロバガンダ。GPLでリリースしたソフトウェアはFSFに支配されるようになるみたいな言い方だな。
じゃあプロパガンダを消した残りの部分はどう?


114 名前:101 mailto:sage [04/02/08 16:03]
>>102
ありがとうございます!
Excel, Word文書の自動作成をSchemeで書いてみたかったので。

とりあえず、こんなことができました。
(require (lib "mysterx.ss" "mysterx"))
(require (lib "class.ss"))
(define excel (cci/progid "Excel.Application"))
(com-set-property! excel "Visible" #t)
(com-invoke excel "Quit")


115 名前:デフォルトの名無しさん mailto:sage [04/02/08 16:11]
面白そうですね.Dr. Scheme って日本語ダメポって聞くけど,文字列としてなら
Excel とかに渡せるのかな?その辺が可能なら Dr. Scheme インスコしてみようかな.


116 名前:デフォルトの名無しさん mailto:sage [04/02/08 17:21]
>>113 そもそも議論の前提がちょっと。GPLの第0項を引用しておく。

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.

著作権保持者でなければGPLに出来ない。PDSには著作権保持者がいないのでそ
のままGPLではリリースできない。GPLに限らずライセンスは通常、著作権保持
者との契約なので、PDSに無改変のままでライセンスを付けるのは問題がある。

もう一つ考えとく必要があるのは、日本のように著作権を完全には放棄できな
い国があること。アメリカで権利を放棄して著作権表記をしなくても、同じも
のが日本の法律では著作権が自動的に発生して保護の対象になる。

Lisp関係では書き手が研究者のことがままある。研究者にはええかげんな人間
が多い。著作権表記がないものでも、ヒモつき研究活動の成果で実は著作権保
持者は勤務先なんてことがありがち。だから、ホントにPDSかは不安。GPL で
も修正BSDでも何でもいいからライセンス付けてくれれば善意の第三者ぶれる
ので少しは安心。

# あ〜、不安になってきた。明日勤務先の規定調べないと。確か委託研究以外
# はコピーライト俺でいいはずなんだけど。


117 名前:デフォルトの名無しさん mailto:sage [04/02/08 17:59]
>cmuclの成果だけ持って来て、ライセンスだけGPLにして定期的にリリースするとかできるでしょ?
...
>なんか陰謀説みたいな話だけど、単純にcygwinかreadline使いたい人は使えばいいし、それを
>配布したい人は、GPLかLGPLでcmuclをフォークすればいいだけでしょ? だれもだれかを制限しようと
>なんてしていないでしょ?
それを"出来る"(=GPL/LGPL/BSD...に出来る)というのはお前の云う通り。
しかし、例えば、誰かが"cmuclをcygwinに移植しようかな"と言い出したとき、技術がそこそこあってそれが可能な人達というのは
まさにcmuclプロジェクトの彼らのことだろ(他にもたくさんいるだろうが、まず注目されるの彼ら)。
cmuclが現在パブリックドメインであることはこれ(=cygwinに移植しようかな)を多少なりとも足踏させる結果になっただろ?
可能論じゃなくって実際にそれをやる人が居るかを考えたときに、cmuclがオープンソースであることとcmuclがパブリックドメインであることには意識の違いが出てくると思わないか?

>じゃあプロパガンダを消した残りの部分はどう?
とりあえず
>>FSFと一蓮托生でいいのか。
についてはっきりと釈明しろと。で、これ
>これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
別に何もしないでしょ。何か問題になる?
これまでの資産は
sourceforge.net/softwaremap/trove_list.php?form_cat=14
莫大にあるというのに。


118 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:00]
ライセンス話ウザイ。

119 名前:117 mailto:sage [04/02/08 18:02]
>もう一つ考えとく必要があるのは、日本のように著作権を完全には放棄できない国があること。
これは忘れてたな。そういえばsourceforge.jpにはpdsがなかったなあ。

これって、もしかしてcmuclプロジェクトに参加できない...ってことじゃないよな。




120 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:04]
ライセンスの話でlispがスレが埋まる現状はちょっと.....

頼むから、お 前 ら C o m m o n L i s p の 話 題 に 戻 ってくれ。
スレが伸びてもライセンスについての議論じゃあ、lispスレとしての価値がない

↓新鮮な話題を希望

121 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:29]
>>112
CVSに入ってるnqueenが面白いですよ

122 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:42]
S c h e m e の 話 題 に 戻 っ て く れ

>>121
マンセーこいつぁ面白そうだ。最初っからこのくれー宣伝汁 !
でもまだ Anonymous CVS はないのか。今後に期待〜

123 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:45]
---新鮮な話題---

新しいlispの実装ができましたよ。
(defun lisp ()
(loop
(format t "~%* ")
(prin1 (eval (read)))))


124 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:49]
cygwin上のgaucheとWindowsのapacheでWilikiを動かすと
書き込みのときに
unbound variable: alist-delete
って出るんですけど 対処法ありますか?
(リロードすると書き込めてるんですが・・・)

125 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:50]
誰か解答求む

126 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:52]
あります

127 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:57]
教えてください

128 名前:124 mailto:sage [04/02/08 19:01]
wilikiのdb.scmの
(define-module wiliki.db
(use srfi-13)
の部分に
(define-module wiliki.db
(use srfi-1)
(use srfi-13)
てやったら オケーぽいけど
これでいいのかな?

129 名前:92@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/02/08 20:33]
藻前らこっちにきなさい

ライセンスあれこれ
pc.2ch.net/test/read.cgi/unix/1032702590/

たまたま別スレの都合で数日前に書き込んだんですけど.



130 名前:デフォルトの名無しさん mailto:sage [04/02/09 19:09]
>>129
誤爆? 宣伝?

131 名前: [04/02/10 19:06]
(define make-structure
(lambda (n) (lambda (d) (lambda (m) ((m n) d)))))
(define select
(lambda (c) (c (lambda (a) (lambda (b) a)))))

の意味がいまいちわかりません。
例えば、
(select ((make-structure (+ 7 5)) (- 9 3)))
とした時のラムダ計算の課程を教えてくれませんか。

132 名前:デフォルトの名無しさん mailto:sage [04/02/10 19:17]
>>131
n := 7 + 5 => 12
d := 9 - 3 => 6
c := (lambda (m) ((m 12) 6)) => #<closure>
m := (lambda (a) (lambda (b) a)) => #<closure>
a := 12 => 12
b := 6 => 6
=> 12


133 名前:  [04/02/10 19:38]
>>131
ありがとうございます、ホントに。助かりました。

134 名前:デフォルトの名無しさん mailto:sage [04/02/11 20:29]
.net系でlisp.netみたいなものってないの?
誰か作ってそうなもんだが。

135 名前:デフォルトの名無しさん mailto:sage [04/02/11 20:50]
common-lisp.net/

136 名前:デフォルトの名無しさん mailto:sage [04/02/11 21:26]
これのことですか.

ttp://dotlisp.sourceforge.net/

Activity Percentile (last week): 19.2626%

137 名前:デフォルトの名無しさん mailto:sage [04/02/12 02:48]
ecl をインストールしてみた。ドキュメントに書いてあるように hello world の
スタンドアローンプログラムを作ってみたら約 3MB の実行ファイルが出来た @
Mac OS X. こんなもんかな。

ところで、数ある Lisp レベルのスレッドの実装ってマルチプロセッサ下でどの位
スケールする物なのでしょうか? 実装依存 && 環境依存でしょうか。

138 名前:デフォルトの名無しさん mailto:sage [04/02/12 04:00]
clisp と ecl をたらいまわし簡易ベンチで比較してみました。ソースはここから。

最速スクリプト言語決定戦!
pc2.2ch.net/test/read.cgi/tech/1074996153

結果)
非コンパイル:
clisp tarai.lsp 101.07s user 0.36s system 96% cpu 1:44.59 total
ロード -> コンパイル -> 実行:
clisp -C tarai.lsp 9.30s user 0.03s system 99% cpu 9.380 total
コンパイル済:
clisp tarai.fasl 9.28s user 0.06s system 99% cpu 9.342 total

ロード -> コンパイル -> 実行:
ecl -load tarai.lsp 67.55s user 19.54s system 93% cpu 1:33.05 total
コンパイル済:
./taraiecl 1.89s user 0.05s system 100% cpu 1.935 total

バージョンとか)
gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1495)
GNU CLISP 2.32 (2003-12-29) (built 3285246448)
ECL (Embeddable Common-Lisp) 0.9c

139 名前:デフォルトの名無しさん mailto:sage [04/02/12 07:51]
>>137
C で書いたプログラムを動かすには C のランタイムが必要だ。
Java で書いたプログラムを動かすには java のランタイムが必要だ。
Lisp で書いたプログラムを動かすには Lisp のランタイムが必要だ。
で、通常 C のランタイムはシステム標準で付いてくるので意識する人が
少ないだけ。

寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。
商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ
Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか
期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが
どう見ても有利だろう。



140 名前:デフォルトの名無しさん mailto:sage [04/02/12 08:06]
>>139
>寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。
すんません。嘘書きました。CMUCL 以外の処理系がネイティブである
事をあまりにも強調してるので、混乱してました。

>商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ
>Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか
>期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが
>どう見ても有利だろう。
御意。

ファイルサイズの件について、ECL はデフォルトで共有ライブラリ化
されるみたいなので Mac 以外でも試してみます。現状でも特に不満は
無いです。

141 名前:デフォルトの名無しさん mailto:sage [04/02/13 14:31]
ttp://boost.cppll.jp/HEAD/libs/preprocessor/doc/topics/techniques.html キモッ

142 名前:デフォルトの名無しさん mailto:sage [04/02/13 15:46]
>>141
俺にゃぁこーゆうのは複雑怪奇に見えるが,それでも、lisp よりはマシだとか思う
人も多いのだろうな。


143 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:12]
GNUがm4なんて捨ててGuileをGNUツールの中心に据えるなんて話を
大分昔に聞いたんだけど、どうなったんだろう。親分の思惑とは
離れて、LISP嫌いのUNIXユーザが多すぎるんだろうな。arcなんてのも
最近は更新されてないし。

144 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:17]
多過ぎるって程でもないんじゃないのかな。elispは結構使われてるし。

145 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:21]
>>141
##の使い方見てて切なくなった(w

146 名前:デフォルトの名無しさん mailto:sage [04/02/13 19:34]
俺は元大したことないLisper。CLOSなんかでprogramming。
今はC++のtemplateを使ったgeneric programmingに萌え。

147 名前:デフォルトの名無しさん mailto:sage [04/02/13 23:00]
漏れは大したことのないC++コード書き。template使ってgeneric&generativeなprogramming。
最近興味本位で触ったLispのマクロにくらくらしてる。

148 名前:デフォルトの名無しさん mailto:sage [04/02/14 08:20]
リストが循環構造かどうか、って判定する方法ある?
いちいち全部比較してくよりは、GCのマーク&スイープみたいに
マーク付けながら辿っていった方がいいかな。

149 名前:デフォルトの名無しさん mailto:sage [04/02/14 08:37]
>>148
hare and tortoise



150 名前:デフォルトの名無しさん mailto:sage [04/02/14 15:30]
"tortoise and hare" algorithm は
guile/libguile/list.c の scm_ilength() を見たらよいよ。

151 名前:デフォルトの名無しさん mailto:sage [04/02/14 23:02]
SICPの例題をこなすのにお勧めのSchemeの処理系はありますか?
環境は、Win2000 です。

152 名前:デフォルトの名無しさん mailto:sage [04/02/14 23:52]
何でもいいに決まってる。

153 名前:デフォルトの名無しさん mailto:sage [04/02/15 01:43]
>>151
DrSceme が簡単でいいんじゃないの?
cygwin + gauche という手もあるけど。

154 名前:デフォルトの名無しさん mailto:sage [04/02/15 02:44]
>>153
漏れ、最初DrScheme使ってt-y-schemeやったけど、
売りのトレースとかが、初心者モード(ほとんど何にもできない)でしか使えなくて泣いた。


155 名前:デフォルトの名無しさん mailto:sage [04/02/15 03:02]
>>151
SICPのサンプルコードはSCMかMIT-Schemeだった気がするので、
Cygwinで動くようならこれが無難?

win2kならPetite Chez + ChezEditも良いかもしんない。

156 名前:151 mailto:sage [04/02/15 11:17]
MIT-Schemeってこれ www.gnu.org/software/mit-scheme/ ですか?
Windows binary 版をインストールしてみました。
EDwinって言うEmacs見たいなエディタも付属してます。

つか、殆どEmacs。。。
Lisp/Scheme やるには Emacs も覚えなあかんの。 _| ̄|○

Schemeの処理系って小さいイメージがあったけど
MIT-Schemeって一式で35Mbyteもあるのね。

157 名前:デフォルトの名無しさん mailto:sage [04/02/15 11:42]
>Emacs も覚えなあかんの。 _| ̄|○
Win環境の人からすると異常だけど、
UNIXのソフトって全体的にemacsのキーバインドに沿ったものが多いからね。


158 名前:デフォルトの名無しさん mailto:sage [04/02/15 14:16]
>>156
さあ、*nix文化へいらっしゃい。
今までM$に飼い頃されてたのはなんだったんだ、と開眼するから。

159 名前:デフォルトの名無しさん mailto:sage [04/02/15 15:31]
vi>>>>>>>>>>>>>>>>>>emacs



160 名前:デフォルトの名無しさん mailto:sage [04/02/15 15:57]
秀丸>>>>>>>vi

161 名前:デフォルトの名無しさん mailto:sage [04/02/15 16:07]
Emacs>>>>>秀丸

さてどうしよう。

162 名前:140 mailto:sage [04/02/15 18:55]
Scheme についても調べてみました。ネイティブコードコンパイル可能な処理系では、chicken と
mzScheme は Lisp レベルでの thread みたいでした。RScheme はサイトが落ちていて不明。

ECL で --enable-threads するとビルド出来ない(最新 CVS 版)のですが、Linux 限定なのかな。

163 名前:デフォルトの名無しさん mailto:sage [04/02/15 20:13]
>>157, 158
一応、vi (ex, ed) は使えるんですけどね。漏れって vi 信者。w
などと言いながら emacs のマニュアル本買って来ました。




164 名前:デフォルトの名無しさん mailto:sage [04/02/15 21:15]
Kahua セミナー逝った香具師、レポートしてください。
地方在住 lisper は逝きたくても逝けないのです。おながいします。

165 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:31]
>>158
ウイソのプログラムでメシを食ってる漏れとしてはそんな事は口が裂けても・・・


166 名前:これってどうよ? mailto:sage [04/02/16 10:40]
Pythonによるcommon lispのフロントエンド "lython"
www.caddr.com/code/lython/

スラドの記事
slashdot.jp/developers/04/02/15/1528254.shtml?topic=93



167 名前:デフォルトの名無しさん mailto:sage [04/02/16 11:30]
あくまで、Common Lisp風ね。だからScheme風といってもいいだろうし。
(import os)

(:= out "/tmp/lythontest")
(if (os.path.exists out)
    (os.unlink out)
  (print "target file does not exist"))

(:= f (open "/tmp/lythontest" "w+"))
(f.write "Hello World from Lython!")

168 名前:デフォルトの名無しさん mailto:sage [04/02/17 05:50]
pythonのライブラリが使えるlispモドキかな。
ちょっと前に話になったスクリプト云々の話は
これに食われそうだね。
ポータブルな実装としてはベースがpythonなら問題ないだろうし。

169 名前:デフォルトの名無しさん mailto:sage [04/02/17 14:26]
前も話題に出たけど、pythonと共存できて何か意味あるのか?

速度: pythonはバイトコード
ライブラリ: pythonよりもC/C++のライブラリの方が膨大




170 名前:デフォルトの名無しさん mailto:sage [04/02/17 14:49]
> ライブラリ: pythonよりもC/C++のライブラリの方が膨大

FFI が面倒なので Python のライブラリでウマーって事でしょう.
まぁ,中途半端な Lisp モドキよりは普通に Python 使ったほうが
いいような気がしますがね…

171 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:09]
#define BEGIN { と似たような一抹の虚しさがただような。
ライブラリを手軽に使うのだけが目的なら、Common LispかSchemeと言語仕様を同じにしなくちゃね。
ただ、ここから新しい言語として羽ばたかせようというなら話は別だけど。
Arcみたいにね。

まぁ、ただ面白そうだからやってみたんだろうけど。

172 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:32]
おまえらこんなとこでケチつけてないで、今 後 に 期 待 し と け

173 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:47]
>>172 そんな言い方じゃ、話が面白くならないよ。今後に期待できるようなことは何かあるの?

174 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:57]
pythonが超ポピュラーになってライブラリが暴発的に増えるとかいう展望を抱けw

175 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:10]
lythonダウンロードしてみました。ウェブサイトやコードを見た限り、まだまだ、
孵化する日は先で、生まれたてのホヤホヤという感じです。

みんなが作るのが好きな俺Lispの1つですね。

しかし、よくSlashdotが取り上げたね。それが悪いというわけじゃないけど。

176 名前:175 mailto:sage [04/02/17 17:13]
あっ、つけるの忘れてた。最後にwをつけて読んでください。

177 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:37]
(´-`).。oO(孵化してないのに産まれたて。。。)

178 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:41]
(・A・)lython!!

179 名前:デフォルトの名無しさん mailto:sage [04/02/17 22:46]
大蛇は卵生だから、産まれてから孵るまで時間がかかるんじゃないの。

しかし、インデントのかわりにS式使ってる感じだね。

そういえば、Parrot上のSchemeはどうなったんだろ。Parrot自体が資金ショー
トという噂も聞いたこともあるけど。




180 名前:デフォルトの名無しさん mailto:sage [04/02/18 01:45]
えーとguileやgaucheは「組み込みLispライブラリ」としての用途も意図されているわけですが,
実際に組み込むためのHOWTO文書とかチュートリアルってあります?
けっこう検索したんだが見付からない.

guileを組み込んだGNUプロジェクトのアプリはいくつかあるけど,大き過ぎて見る気がしない.
なんか「Schemeで拡張できるtail(1)を作ってみました」みたいな文書ないもんですかね.

181 名前:デフォルトの名無しさん mailto:sage [04/02/18 11:00]
>>180 guileの現状は知らないんですが、すこし前までは、guile自体の発展速度が
速すぎて、非互換な変更とかがけっこうあって、アプリに組み込んだ人が苦労した
という話がありました。とかいうふうに一度、レッテルを貼られると、それを取り除く
のに苦労しますよね。GNUはマニュアルをちゃんと書く習慣があると思うんだけど、
guileのマニュアルにアプリへの組み込みチュートリアルないのかな?

>>179 つーか、Parrotをやってる人たちって金もらっているのですか?
ParrotがJVMレベルのバーチャルマシンとしてみんなに認められれば、オモロ。

182 名前:デフォルトの名無しさん mailto:sage [04/02/18 17:14]
>>181
とりあえず去年の今ごろのParrot/Perl6の紹介には金が足りないというのがあっ
た。www.newsfactor.com/perl/story/20748.html

CVSにはscheme用もあったけど動くのか不明。ぱっと見、まだ途中かなという
感じがした。H"なんで下して試す元気がないから、誰が試してくれるとうれし
い。

;; 遅れぎみ(婉曲的な表現)なんで、逆に誰かがどれでもいいから別のVM上に
;; Perl6を実装しちゃえば英雄になれるかも。


183 名前:180 mailto:sage [04/02/19 01:04]
>>181
GuileのinfoのPart 3がそれっぽいんですが,どうもイマイチ実感が...
マトモなサンプルになってないんですよ.
ドローソフトの組み込みにするために,いかに「図形」をSchemeオブジェクトとして
Cレベルで定義するかが主眼らしいんだけど.
そんな高尚なことよりとりあえずS式の設定ファイルを読みたいだけなのにな.
ま,がんばったらできそうなので文書にするかも.

184 名前:デフォルトの名無しさん mailto:sage [04/02/19 19:52]
>>180
Gaucheはドキュメントはまだ無いみたいだけど、インタプリタであるgoshが
「Gaucheライブラリのサンプルアプリ」という位置付けらしいのでソース見るのが早い。
goshはlibgaucheを初期化してrepl起動してるだけだから本当に小さいし。

185 名前:デフォルトの名無しさん [04/02/20 23:00]
Gauche0.7.4.1 で gdbm はどうやって使うのでしょうか。
gdbm.so が ext/Makefile から外されてる
gdbm.c はコンパイルできない。エラー多すぎ
までは調べました


186 名前:デフォルトの名無しさん [04/02/20 23:04]
半分解決

ndbm 使うと perl コンパチのファイルができたみたい・・
なので gdbmは不要となりました。


187 名前:デフォルトの名無しさん mailto:sage [04/02/20 23:18]
確か、configure時にgdbmの存在をチェックしてると
思うので、それが見つけられていないのでは。
gdbmが/usr/localとかにインストールしてあるなら、
./configure --with-local=/usr/local みたいにするとか。


188 名前:デフォルトの名無しさん mailto:sage [04/02/21 00:11]
恐れ入ります。
config.log 見て納得しました。
perl は p5-GDBM 入れないと駄目なんですね。
gdbm はあまり使われてないと。


189 名前:デフォルトの名無しさん mailto:sage [04/02/21 11:11]
multiple-value-bind の属性リスト版を書いたんですけど、
どうやったら gensym を使うように改良できますか?

使い方は、(setq alist '((a 2) (b 3))) と代入しておいてから
(alist-bind alist (print (+ a b)) (* a b)) を評価すると、
5 を印字してから 6 を返すような関数です。

現状はこんな感じです。
(defmacro alist-bind (alist &body body)
 (let ((alist-bind-internal-variable (eval alist)))
  `(multiple-value-bind
   ,(values (mapcar #'car alist-bind-internal-variable))
  ,(cons 'values (mapcar #'cadr alist-bind-internal-variable))
   ,@body)))
バッククオートを入れ子にして使うのがどうしてもうまくいかなくて
ほかと重ならない変数名で逃げてます。実用上は問題ないんですが
もっとスマートな解決策はないものでしょうか。



190 名前:デフォルトの名無しさん mailto:sage [04/02/21 11:13]
>>189
>5 を印字してから 6 を返すような関数です
マクロの typo です。

191 名前:デフォルトの名無しさん mailto:sage [04/02/21 12:28]
>>189
ちょっとあなたのと仕様が違いますが、昔書いたものを。

(defmacro alist-bind ((&rest vars) alist &body body)
(let ((tmp (gensym)))
`(let ((,tmp ,alist))
(let ,(mapcar #'(lambda (var)
`(,var (cdr (assoc ',var ,tmp :test #'eq))))
vars)
,@body))))

(setq data '((a . 1) (b . 2) (c . 3)))

(alist-bind (b c a) data
(list b c a))
=> (2 3 1)

(macroexpand-1 '(alist-bind (b c a) data (list b c a)))
=> (LET ((#:G219 DATA))
(LET ((B (CDR (ASSOC 'B #:G219 :TEST #'EQ)))
(C (CDR (ASSOC 'C #:G219 :TEST #'EQ)))
(A (CDR (ASSOC 'A #:G219 :TEST #'EQ))))
(LIST B C A)))

192 名前:189 mailto:sage [04/02/22 22:00]
>>191
let の変数定義をマクロ展開の結果に置き換えるマクロを書くわけですね。
勉強になります。alist-bind がレキシカルコンテキストを参照できるので、
こちらの方が優れてますね。その代わり、vars に与える変数一覧を事前に
与えないといけないので、今やりたい用途には使えないですね。

いま欲しいのは、destrucuring-bind の複数版で、1個の値に対して
パターンを複数与えることができるようなマクロです。最初のパターンに
うまくマッチしなければ次のパターンを試し、マッチしたパターンがあれば
そこで変数を束縛して、対応する式を順次評価して最後の式の値を返すと
いうような物です。最後のパターンにもマッチしなかったばあいは nil と
いうことで。
(let ((x 2))
 (dbind* (list (+ 3 4) 5)      ; 最初に評価して(7 5)を得る
  ((a b c) (list a b c))       ; マッチしないので実行されない
  ((a b) (incf x) (list a b x))))   ; (7 5 3) になる
というような dbind* がうまくできなくて困ってます。
まず値を集めて、後から展開するという方針が間違ってるのかもしれません。
どうしても評価のレベルが一致しないんですよね。

193 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:20]
先に進んじゃってるとろスマンけど、>>189 ってちゃんと動くのか?
(setq alist '((a 1) (b 2)))
(alist-bind alist (print (+ a b)) (* a b))
とかいたファイルをコンパイルしたら、alist-bind の展開時に
まだ alist がバインドされてないとかでエラーになるような…。

194 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:00]
>>192
パターンが単純であればこんな感じかな?
destructuring-bind と同等のことがしたい場合は、
もっと複雑なことをしなければならないが。

(defmacro dbind* (list &body forms)
 (let ((vals (gensym)))
  `(let ((,vals ,list))
    (case (length ,vals)
     ,@(mapcar #'(lambda (form)
            (let ((vars (car form)))
             `(,(length vars)
              (let ,(mapcar #'(lambda (var)
                       `(,var (pop ,vals)))
                     vars)
               ,@(cdr form)))))
          forms)))))

195 名前:189 mailto:sage [04/02/22 23:50]
>>193 やってみたら、compile-file でエラーが出ました。load したら 3 が印字されて t が
返りましたけど。>>192 がうまく動かないはそのせいなのかもしれません。

196 名前:189 mailto:sage [04/02/23 00:21]
>>194 すみません、調べてみたら destructuring-bind よりもっと複雑な仕様でした。
例えば (dbind* '(a (2 3 4)) (('a (b 3 c)) (+ b c))) がマッチして、6 が返されます。
シンボル以外のアトムや quote されたシンボルをネストした S 式の中に書くことができ、
パターンの同じ場所に eq になるアトムが存在するときに、マッチするものと見なされます。
上の例の 3 や a がそれです。このとき、a はシンボル a に束縛されます。

197 名前:デフォルトの名無しさん mailto:sage [04/02/23 01:50]
>>196
ふむ、若干面倒だね。とりあえず、パターンのシンボルに
リストがマッチするものとして書いてみた。

(defun match (vars vals)
 (do ((vars vars (cdr vars))
    (vals vals (cdr vals)))
   ((or (null vars) (null vals))
    (not (or vars vals)))
  (let ((var (car vars))
     (val (car vals)))
   (unless (cond ((eq var val) t)
          ((symbolp var) t)
          ((atom var) nil)
          ((eq (car var) 'quote)
           (eq (cadr var) val))
          ((atom val) nil)
          (t (match var val)))
    (return)))))

198 名前:197 mailto:sage [04/02/23 01:50]
続き

(defmacro dbind* (list &body forms)
 (let ((dummy (gensym))
    (vals (gensym)))
  (labels ((bind (vars vals)
        (mapcan #'(lambda (var)
              (cond ((atom var)
                 `((,(if (symbolp var) var dummy)
                   (pop ,vals))))
                 ((eq (car var) 'quote)
                 `((,(if (symbolp (cadr var)) (cadr var) dummy)
                   (pop ,vals))))
                 (t (let ((temp (gensym)))
                   `((,temp (pop ,vals))
                    ,@(bind var temp))))))
            vars)))
   `(let ((,vals ,list))
     (cond ,@(mapcar #'(lambda (form)
               (let ((vars (car form)))
                `((match ',vars ,vals)
                 (let* (,@(bind vars vals))
                  ,@(cdr form)))))
             forms))))))

199 名前:デフォルトの名無しさん mailto:sage [04/02/23 05:51]
Gauche0.7.4.1をインストールして
(string-concatenate-reverse '(" must be" "Hello, I") " going.XXXX" 7)
っていう式を評価させたらエラーになったんだけど、
SRFI-13ではそういう実装も許されてるの?
それともインストール失敗しただけ?



200 名前:デフォルトの名無しさん mailto:sage [04/02/23 06:21]
>>199 バグじゃん? wilikiにでも報告するよろし。


201 名前:デフォルトの名無しさん [04/02/23 18:37]
perlのスクリプトとをgaucheに移植してるんだけど
perlとgaucheの対応表なんてどっかにありませんか。
とりあえず
open(STDERR, ">&STDOUT")
$| = 1
$!
がわからない。







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

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

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