Lisp@UNIX版

1名無しさん@お腹いっぱい。
垢版 |
NGNG
なんだかんだ言って,ホントはみんなLispが好きなんだろ?(藁)
というわけで,語ろうや.

プログラム技術板のLisp Schemeスレ
http://pc.2ch.net/test/read.cgi/tech/1016211619/
9687
垢版 |
NGNG
>>89
やっと前に見たページ見つけたよ。
http://www.sipeb.aoyama.ac.jp/~ida/books/gnu_rms.html
97名無しさん@お腹いっぱい。
垢版 |
NGNG
>>96
Richardが、かって泣かんばかりになげいたことがあります。「私の人生って
なんだったんだろう。」

私が感じるのは、技術の進歩はそれだけで独立しているものではないというこ
とです。それなのに彼は、あまりに自分の仕事に熱中していてまわりのことを
気にしていませんでした。それにときどき自分で気がついてなげくことがある
のです。同時に私生活についても同じことが言えます。ある時、いつものよう
に満員の小田急線の中で、若いアメリカ人女性3人がそばにいて、一生懸命彼
が話しかけていたことがあります。あきらかに話がかみ合わないのですが、そ
れでもめげずに必死に話しかけます。3人は先に降ります。すると、彼は
「チェッ、また逃しちゃった。いつもそうなんだ。」

RMSアニキに萌え……
98名無しさん@お腹いっぱい。
垢版 |
NGNG
でも rms は 年齢!=彼女いない暦 (ex. Alix)
なのだから、この板にいるやからの 2/3 より偉い。
漏れよりモナー
9992
垢版 |
NGNG
>>93 チェッ。。。ネタじゃないのに。

じゃあ、痺れるような continuation の使い方を見せて。
NGNG
((call/cc call/cc) (call/cc call/cc))
10192
垢版 |
NGNG
>>100 ネタはもうお腹いっぱい。

continuation は、いくつかの関数がやりとりしながら進行するようなときに使うらしい。
でも、これは scheme の強力な部分ではないのですか?どう使えばいいのよ?
NGNG
http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme-Z-H-15.html#%_sec_13.4.1
103名無しさん@お腹いっぱい。
垢版 |
NGNG
scwmやgwmを使ってる奴少ないな。
NGNG
gwmはlisp類じゃないような。見た目はlispっぽいけど。
Cとc-shellぐらい違う。
105名無しさん@お腹いっぱい。
垢版 |
NGNG
scwmは半年前に使ってみたけど、不安定だったなー
NGNG
>>101
(let ()
(call/cc(lambda(break)
〜なんかの処理〜
停止したいときにbreakに括弧を付けて呼びだすと、
)) ; lambda call/cc
ここにジャンプする
) ; let

このbreakの値(=継続)を保存しておくと、任意の位置で中断と再開ができたりする。
応用は、デバッガ、強調型マルチタスク、コルーチン、任意の処理のハンドル化、など。
107名無しさん@お腹いっぱい。
垢版 |
NGNG
あ〜そろそろACL更新しなきゃ
NGNG
trial 版て Composer 使えないんだもん。つまんない。< ACL
NGNG
cmuclでそこそこ幸せなんですけど、
ACLってそんなに(・∀・)イイ!!ですか?
NGNG
>>109
なんだか動作が速い気がする。
NGNG
cmuclのwindows版は無いんですか?(かなり探したけど見つからなかった)
NGNG
>>111
ありません。clispで我慢汁。
NGNG
そうですか。残念。
cmulispとclispの違いって何ですか?
NGNG
ACLの最適化はメチャすごくて、
ほとんどC++で書いたのと変わらない速度になるそうだ。
NGNG
>>114
この辺の話ですか?
http://www.graco.c.u-tokyo.ac.jp/~kamina/lisp/bench.html

取り上げている問題が、再帰関数と、リスト処理
だから、このページの ACL と C++ との比較は
ちょっと当てにならない気がする。
116名無しさん@お腹いっぱい。
垢版 |
NGNG
どっかに物凄い種類の言語のベンチ比較したサイトなかった?
NGNG
>116
これのことかえ?
http://www.bagley.org/~doug/shootout/craps.shtml
118166
垢版 |
NGNG
そうそうこれこれ。ありがとさん。
119116
垢版 |
NGNG
s/16/11/
NGNG
Javaやスクリプトなんかは比較にならないくらい速いねえ。
121名無しさん@お腹いっぱい。
垢版 |
NGNG
>>120
何処みてるの?
122名無しさん@お腹いっぱい。
垢版 |
NGNG
age
NGNG
おいおい、そろそろ保守しないとヤヴァインじゃない?
124名無しさん@お腹いっぱい。
垢版 |
NGNG
変数に型が無いからな。
NGNG
(age Lisp@UNIX版)
NGNG
(defun age (thread)
(case thread
((http://pc3.2ch.net/test/read.cgi/tech/1031560687/l50) 'age)
((http://pc.2ch.net/test/read.cgi/unix/1019926525/l50) 'sage)
((http://pc.2ch.net/test/read.cgi/prog/1031179059/l50) 'hage)))
NGNG
cmuclのgcについて質問してもいいですか?
NGNG
>>127
だめって行ったらどうすんのさ、
そんなこと聞かずに、普通に質問したら?
NGNG
>>128
えっと、Debian GNU/Linuxのwoodyのcmuclとsbcl(Steel Bank CommonLisp)を
使っています。
cmuclのドキュメント(cmu-user.ps)を見ると、
*bytes-consed-between-gcs*という大域変数で、どこまでコンスが作られたら、
GCが行われるか決定されるか設定できるみたいに書いてあります。
デフォルトでは2000000になっているそうです。
一方、sbclでのデフォルトは20Mになっているそうです。
例えば古典的な8queensなんかを(コンパイルして)実行すると、
cmuclではしょっちゅうGCをはじめるのでsbclの10倍以上時間がかかります。
cmuclで(defparameter *bytes-consed-between-gcs* 20000000)とかってしても、
GCが行われる頻度は変わりません。
どうやったらcmuclでもGCでマメに止まらないようにできるのでしょうか。
厨房でスマソ。
NGNG
>>129
cmuclは使ったことないです、お手上げ。
http://pc3.2ch.net/test/read.cgi/tech/1031560687/とか
http://pc.2ch.net/test/read.cgi/prog/1031179059/
で聞いてみてちょ、力になれなくてスマソ。
NGNG
8queenでガベコレいるか?
132名無しさん@お腹いっぱい。
垢版 |
NGNG
>>129
(setf (bytes-consed-between-gcs) 20000000)
かな。
133名無しさん@お腹いっぱい。
垢版 |
NGNG
-- Variable: *bytes-consed-between-gcs*
CMU Common Lisp automatically GC's whenever the amount of memory
allocated to dynamic objects exceeds the value of an internal
variable. After each GC, the system sets this internal variable to
the amount of dynamic space in use at that point plus the value of
the variable `ext:*bytes-consed-between-gcs*'. The default value
is 2000000.

英語よくわからんのであれだが
GCしはじめる数値を処理系がこの変数にセットするだけでないかい。
この変数を変えるとGCしなくなるんじゃなく。
NGNG
CMU Common Lisp は動的オブジェクトに確保されたメモリの量が内部変数の値を超える
たびに自動的に GC する。各 GC の後、その時点で使用されている動的スペースの量に
変数 `ext:*bytes-consed-between-gcs*' の値を加えたものを内部変数にセットする。
初期値は 200000である。
135名無しさん@お腹いっぱい。
垢版 |
NGNG
.cmucl-initに
(setf (bytes-consed-between-gcs) 20000000)
してみました。
* (time (queens 10))
すると、
[GC threshold exceeded with 21,062,632 bytes in use. Commencing GC.]
[GC completed with 1,119,416 bytes retained and 19,943,216 bytes freed.]
[GC will next occur when at least 21,119,416 bytes are in use.]
ですのでコンスが20Mを越えたときにGCが始まるようになりますた。
ちなみに(queens 10)だと24回GCして37secかかります。
sbclですと一度もGCしないで0.85secで(queens 10)できますた。
なんでこんなに違うんだろう……
136135
垢版 |
NGNG
勘違いしてましたスマソ。
cmuclでは
* (load "8queens.lsp")
* (compile-file "8queens.lsp")
しても、
* (load "8queens.x86f")
するまでは8queensの関数はコンパイルされていないものが用いられる
ことに気づいていませんでした。
sbclではトップレベルの関数は即コンパイルしているんで違うのあたり前田った。
恥ずかしい……
137名無しさん@お腹いっぱい。
垢版 |
NGNG
(gc)
NGNG
>>137
gcしたらこのスレは消えると思うが。
NGNG
>>138
スレじゃなくて、レスが消えたな。
NGNG
(sage)
NGNG
[1]>(sage)

*** - EVAL: the function SAGE is undefined
1. Break [2]>_
NGNG
(defun sage () (sage))
NGNG
[1]> (defun sage () (sage))

** - Continuable Error
DEFUN/DEFMACRO(SAGE): #<PACKAGE COMMON-LISP> is locked
If you continue (by typing 'continue'): Ignore the lock and proceed
1. Break [2]>
NGNG
寂れてるね。emacsスレがあるからいらないか。
NGNG
(寂れてますね)
146名無しさん@お腹いっぱい。
垢版 |
NGNG
cl-httpd を cmucl 18d で動かせた人居ますか?なんか、cmucl 用のパッチを
当ててもコンパイルできないんすけど…。
147名無しさん@お腹いっぱい。
垢版 |
NGNG
age
148名無しさん@お腹いっぱい。
垢版 |
NGNG
CLOSが気に入ってます。
Allegro CLを研究室の予算で買ってもらおうかな…
NGNG
>>148 ええのぅ。漏れもホスィけど金無いから cmucl で我慢。
windows では clisp か newlisp かなぁ…。
150名無しさん@Emacs
垢版 |
NGNG
clawk 便利 age
NGNG
>>150
あなたは なみなみならぬ修行を積んだ強者か単なる変態と
思われます。
NGNG
(´-`).。oO(そんな事言える 151 も同類では?)
NGNG
(´-`).。oO(他人を推量できるからには 151 は強者かつ変態である、に一票)
154151
垢版 |
NGNG
コードのぱっと見だけでもだいぶ違和感がある。(ないかい?)
http://www.geocities.com/mparker762/clawk.html

ケナしたりクサしたりしてるつもりはなくて、正直な感想です。
強まった lisper & awker ならすんなりイケるんですかね。
ま、も少し遊んでみます。
155150
垢版 |
NGNG
…全然修行を積んでないということは,漏れは…で,でも,少なくとも
regex は便利っすよね?
(let ((m (compile-str "[:digit:]+"))) (scan-str m "abc 012 cde"))
のように,compile-str で明示的に正規表現をコンパイルできて (゚д゚)ウマー
しかも GNU regex より速いそーですし.ウマウマ
156名無しさん@お腹いっぱい。
垢版 |
NGNG
おまえら,xml パースには何使ってますか?やっぱ Franz の xmlutils ですか?
157名無しさん@お腹いっぱい。
垢版 |
NGNG
>>150 regex よりほんとに速いのか誰か確かめてくれ.
158名無しさん@お腹いっぱい。
垢版 |
NGNG
>57
regex.tgzの中にテストコード入ってるよ
159名無しさん@お腹いっぱい。
垢版 |
NGNG
試用版Xanalys LispWorks 4.2はここ
http://www.lispworks.com/downloads/lw-personal-edition.html
NGNG
>159 結構制限キツイなぁ….Allegro に比べてどーなんだろう.
使ってる人の感想キボンヌ.でもやっぱ個人で買うにはちと高いなー.
161名無しさん@お腹いっぱい。
垢版 |
NGNG
で,早速試してみますた.
"A*BD" Lisp : 4 secs, 272480/sec, C : 47 secs, 21276/sec
"(A|A)*BD" Lisp : 4 secs, 253807/sec, C : 167 secs, 5988/sec
"(A|B)*BD" Lisp : 4 secs, 233100/sec, C : 163 secs, 6134/sec
"(B|A)*BD" Lisp : 4 secs, 231481/sec, C : 183 secs, 5464/sec
"((A*B)|(AC))D" Lisp : 4 secs, 237530/sec, C : 95 secs, 10526/sec
"((A*B)|(A*C))D" Lisp : 4 secs, 242131/sec, C : 101 secs, 9900/sec
"[Aa]*[Bb][Dd]" Lisp: 5 secs, 216450/sec, C : 49 secs, 20408/sec
さすがに文字列の比較(string= と strcmp)は C のが 2 倍くらい速かったですが.
これで安心して使えます.ナカナカ(・∀・)イイ!!
162Lisper 心得見習い
垢版 |
NGNG
>159 Windows 用なら Corman Lisp も良いと聞きます。聞いただけですが。
http://www.cormanlisp.com/index.html
cmucl の 12/19 日版のバイナリが公開されてますが試した人居ます?
早速入れてみましたが clocc のビルドにこけて 18d に戻しちゃいました。
NGNG
>>162
コーマンなんてネタかと思った。スマソ。
Corman の読み方は'コーマン'でいいの?
NGNG
ロジャー コーマン(Roger Corman)と同じ綴りなので
カタカナで表記すると コーマン だろうな。
NGNG
$200 か。これくらいの手頃な値段で開発環境が普及していれば、Lisp も
もっとメジャーになれたかもしれないな。しかも旧バージョンは非商用なら
無料で使えるという太っ腹ぶり。しかし Windows 専用。
NGNG
日本語使えまつか?
NGNG
$200 なのは 12/31 までだね。
その後でも $249 だからさして高くない。

非商用ならコンパイラとランタイムはフリーみたいだよ。
旧バージョンじゃなくても。
NGNG
なんだか Windows が欲しくなってきた sage
>>166 試せる環境があるなら是非試してみてください.
169166
垢版 |
NGNG
使ってみた。
どうも日本語のことは考えてないっぽい。


NGNG
二バイト目がアレな文字の後には \ が要ったりするんですかね?
今んとこちゃんと多言語対応してるのは Allegro だけなのかな?
NGNG
Strong typing is for weak minds!!
172名無しさん@お腹いっぱい。
垢版 |
NGNG
誰も cl-httpd は使ってないのか… PortableAllegroServe を試したけど
遅かったので Apache + mod_lisp + cmucl でがんばる事にしました.
で,html の元データとして S 式を使うわけですが,SXML みたいな何か標準
のフォーマットみたいなのはあるんでしょうか? AllegroServe の htmlgen
に合わせとけばいい?
NGNG
>>172
>SXML みたいな何か標準のフォーマットみたいなの

便乗質問なんだけど、DSSSLってのは、それのことなの?
NGNG
DSSSL って SGML 文書間の変換用のスタイルシートみたいなもんだから
172 の求めているのとは違うよーな気もする。172 の「S 式からの変換」
ではそんな大層な仕掛けは不要だと思われ。つーか DSSSL 使ってる香具師
居る?
NGNG
Common Lisper な人々にお聞きしたいのですが、シンボルが大文字なのは
どうですか?(setf (readtable-case *readtable*) :invert) とかしてる
んですか?
176名無しさん@お腹いっぱい。
垢版 |
NGNG
>175 これやったら ilisp-mode で欝になりますた。
177名無しさん@お腹いっぱい。
垢版 |
NGNG
大文字だと見づらい
大文字だと怒られてる様な気もする
178名無しさん@お腹いっぱい。
垢版 |
NGNG
(setf (readtable-case *readtable*) :preserve)
だろ?と思ったら標準の関数って全部大文字なのか…
179名無しさん@お腹いっぱい。
垢版 |
NGNG
clawk を使ってみた.awk よりかなーり遅いんだが,漏れ何かおかしな事してる
かな?(500 個のテキストファイルを処理して awk: 2 秒弱 clawk: 35 秒)

(defmacro $gsub! (pattern replacement &optional (source '$0))
`(setf ,source ($gsub ,pattern ,replacement ,source)))

(defun html2txt ()
($gsub! "<[^>]*>" "")
($gsub! ">" ">")
($gsub! "<" "<")
($gsub! """ "\"")
($gsub! " " " ")
($print $0))

(defvar flag nil)
(defawk egroup->txt ()
(BEGIN (setf flag nil))
(#/^<\/pre>/ (setf flag nil))
(t (if flag (html2txt)))
(#/^<!-- Body !-->/ (setf flag t)))

(defun convert ()
(with-open-file (f "./output.txt" :direction :output)
(let ((*standard-output* f))
(dolist (p (directory "home:doc/ML/emacs21/"))
(egroup->txt p)))))
180山崎渉
垢版 |
NGNG
(^^)
NGNG
'(リストの中の人も大変だな)
NGNG
>>181
nilの人などいない!
NGNG
nilのcdrなどない!
NGNG
それじゃそのまんまだろ
185名無しさん@お腹いっぱい。
垢版 |
NGNG
通常Lispは、メモリの階層構造性も、パイプライン化されたハードウェアの
特性も、無視した能天気で天真爛漫なインプリメントされていることが
普通なので、現代の最新CPUの性能をドブに捨てるような使い方になる。
これに関しての最近の改善努力について何か知っていたら、教えて欲しい。
NGNG
ところでGCCの中間コードってリスプなんだな。知らなかったよ。
NGNG
>>185 そ、そうなんですか? Lisp コンパイラというと AllegroCL, LispWorks
CMUCL くらいしか知らないんですが、CMUCL のドキュメント
ttp://cvs2.cons.org/ftp-area/cmucl/doc/CMUCL-design.pdf
の compiler overview を見たら考慮してそーだし、商用のコンパイラなら
当然考慮してそうですけど…。
NGNG
SICP に載ってる scheme チップのコード効率は
どうなんだろ
実物触ったことないからわからないや
NGNG
(defun http://pc.2ch.net/test/read.cgi/unix/1019926525/189 ()
(http://pc2.2ch.net/test/read.cgi/tech/1042167213/59))
190名無しさん@お腹いっぱい。
垢版 |
NGNG
>>189
Stack over flow
NGNG
>>190
末尾再帰最適化される処理系では回り続ける。
192名無しさん@お腹いっぱい。
垢版 |
NGNG
LISPの括弧ってさ、便利だけど、
そのまま制限だよな。
いちいち一時変数使うためにletの括弧でネストしたり。
構文もそれ自体に括弧のペアが必要だし。
NGNG
>192
それのどこが「制限」なのか問詰めたい
NGNG
つまり「両刃の剣」と言いたいんだろう
NGNG
しかしプログラムがS式ってのがlispの力の源泉だからな。
NGNG
なんでも括弧でくるめばいいからラクだけどなー
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況