LISP

このエントリーをはてなブックマークに追加
1名無しさん@1周年
Common Lispが好きな学生ですが、
卒業してから仕事でLISP使う場合って
あるんでしょうか?
2>1:2000/07/09(日) 18:23
無い。
3名無しさん@1周年:2000/07/09(日) 18:44
Emacs のマクロを書く。
41:2000/07/09(日) 18:46
やっぱり?
・・・LISPはC++よりは生産性高いと思うん
ですがね。メモリは食いますが・・・
51:2000/07/09(日) 18:51
EmacsLispで作ったプログラムも
GPLに準ずるんでしょうか?
するとフリーソフトウェアだけしか作れない?
6>5:2000/07/09(日) 22:21
意味不明。なぜに。
7名無しさん@1周年:2000/07/10(月) 01:01
GPL はソース公開の義務じゃないの?
作成されたプログラムについて GPL を適用する必要があるかどうかは
EmacsLisp のドキュメントを読まないと分かりません。

8名無しさん@1周年:2000/07/10(月) 01:34
EmacsLispで儲けようと考えてるのかなあ。
9Lisp屋:2000/07/10(月) 10:10
それなりに使っているところはありますよ.>1

http://nserv.ei.nsc.co.jp:8884/syspro/whatnew/LISP/conference_overview.html
10名無しさん@1周年:2000/07/10(月) 10:44
>9
そりゃまぁ、アカデミックなところだとね。
111:2000/07/10(月) 11:37
これねー。東京に住んでたらいったんですがね。
関西でもやってくれないかな。 >9

Emacs Lispインタプリタって、Emacs(Mule)以外
にあるんですかね?結局、実行にEmacs使うんなら
「GPLに準拠したもの」を使用する以上やっぱりGPL
準拠になるのかなって思いましたので。このへんは
ようわからんですね。
12Lisp屋:2000/07/10(月) 14:42
>10
9で挙げたのはユーザー会なので,アカデミズムとは無縁なシステム
開発事例も発表されてましたよ.

>1
Lisp好きなら自腹を切って行くべし! というのはさておき,Lispを
使ったシステム開発というのは全くないわけではないので,それなりの
スキルがあればちゃんと仕事はできます.むしろLispがちゃんと使える
人は希少価値があるといっていいでしょう.もちろん,Lispしかできま
せんというのではお話になりませんが.

私の経験では,Lispでちゃんとプログラムが書ける人は,たいてい他の
言語もあっという間にマスターできますし,オブジェクト指向やパター
ンなどの考え方も素直に取り入れることができます.1さんは学生のう
ちにいっぱい勉強してその域に達してください.単なるLispオタク(こ
れは大学の情報系学科それぞれに必ず一人はいるといわれている)には
ならないでね.

あと,Emacs Lispで書いたプログラムすべてについてはGPLは適用され
ないのでは? gccで動くプログラムすべてにGPLが適用されないのと一
緒でしょう.
13名無しさん@1周年:2000/07/10(月) 15:10
>私の経験では,Lispでちゃんとプログラムが書ける人は,たいてい他の
>言語もあっという間にマスターできますし,

そりゃLispに限らないでしょ。
CでもPascalでもちゃんとプログラムが書ける人は他の言語のマスターが早いよ。
141:2000/07/11(火) 18:11
12>
やっぱそうですよね。Emacs Lispで書いたプログラムには
必ずしも、GPLは適用されるということはないですよねー。
GCCのライブラリを用いた場合でも適用されないですもんね。

13>
でもCやPascalよりLispのほうが抽象化能力は高いので
勉強にはなると思いますよ、きっと。
15>14:2000/07/11(火) 18:28
12>
じゃなくて
>12
です
161:2000/07/14(金) 15:43
>15
すみません・・・ CLISPのプロンプトが
[ n ]> なもので、つい間違えました。
17名無しさん@1周年:2000/07/14(金) 15:45
lisperって実は結構いる?
18名無しさん@1周年:2000/07/14(金) 16:00
Scheme(スペル怪しい)とLispってどっちがいいんですか?
それ以前に違いがあまりないように思えてしまうんですが。
191:2000/07/14(金) 16:15
噂では、湾岸戦争の後方支援プログラムはLISPで
書かれたそうです。
20名無しさん@1周年:2000/07/14(金) 19:30
GCで止まったりしないんだろうか。
21>20:2000/07/14(金) 19:32
並列に走らせればとまらない(やり方がある)よ。
22名無しさん@1周年:2000/07/15(土) 00:43
Emacs lispの参考書希望
23名無しさん@1周年:2000/07/15(土) 09:41
scheme大好きよ。
24名無しさん@そうだ選挙にいこう:2000/07/15(土) 10:58
>1
10年前なら
プラントのエンジニアリング会社、たとえば千●●なんとかとかで
自動プログラミングとかLispでやってたよ。
奥さんに三行半を突き付けられた輩が何人いたことか。
251:2000/07/15(土) 19:23
>24
なんで奥さんに三行半突きつけられるんですか?
LISPしてたからじゃないですよね。ぞぉーっ。
26schemeモナー:2000/07/15(土) 20:06
       Λ
       |)\
  Λ_Λ |) |                   ∩_∩  ∩_∩
 ( ´∀`)| ) ノ  / ̄ ̄ ̄ ̄ ̄ ̄       (; ´д`)  (; ´д`)
 (schemeつ| <  lispは皆殺し       ( lisp ) ( lisp )
 | | | ∪  |               | | |  | | |
 (__)_)     \______      (__)_) (__)_)

271:2000/07/15(土) 21:03
LISPは面白いのになぁ。多倍長の数値や分数つかえるのもなか
なか便利。ラムダ式つかったり、変数に関数クロージャ束縛
したり、グローバルなスコープを持つ動的変数使えたり、
ネームスペースも分けられるし、機能さえ把握してたら
使い勝手いいっす。Schemeは詳しく知らないですが、また
勉強しときます。ちなみにSchemeの方は仕事で使ったり
してるんですか。
281:2000/07/17(月) 15:53
図書館いって、岩波書店の
Scheme入門(湯浅太一 著)借りて来ました。
勉強します!!
29名無しさん@1周年:2000/07/17(月) 16:13
Lisp のコードはすごく見づらい。処理系には嬉しいかもしれないが
人間には嬉しくないぞ。
今さら Lisp の利用価値って思いつかない。
スクリプト言語として使えるぐらいか?
30揚げ足取り:2000/07/17(月) 16:16
>24
奥さんに三行半を突き付けられることはあり得ないよ。
国語辞典で「三行半」を引くべし。
31名無しさん@1周年:2000/07/18(火) 11:18
────────────
────────────
────────────
──────。
321:2000/07/18(火) 19:36
>29さんへ。
人間でもLISPのコードは慣れればものすごく読みやすいです。
ほんまです。僕なんかCのほうがよっぽど気持ち悪いです。
たとえば、同じ( )でもforやifの後と関数呼び出しの後では意
味合いが違うとか、演算子の結合規則がややこしいとか、
文法的にはLISP方が統一されているという見方もできませんか?

Lispの利用価値って思いつかない?慣れれば絶対
C++より短い時間でシステム組めますよ。これって
利用価値ないんですか?

あと、スクリプト言語として使えるくらいか?
とおっしゃってますが、人間としては見づらいとの
意見とすこし食い違うような気がするんですが。

まだまだ学生なもので世の中がわかって無い部分
が多々あり、ぜひご指導、ご教授してもらえたら、
私だけでなく2chを閲覧している他の学生もありがたい
と思いますのでよろしくお願いします。

33>1:2000/07/18(火) 20:08
C++は、結局現実主義の言語だからねぇ。OOPに色気を出しつつも、
Cのような低レベルの処理も書けるように作られている。
実行速度や使うリソースのことを考えてるんだろうね。
たしかにLispは理想に近い言語かもしれないけど、いかんせん
そういった経済性というか、現実性に乏しいのかもしれないと
思ったりもします。
34耳学問ですみませんが:2000/07/18(火) 20:25
皆さん, 本当に知らないご存知ないんでしょうか? Nintendo64 の開発に一部使われていたこととか…
Common Lisp で構築された WWW サーバがあって CGI スクリプトまで Common Lisp で書けちゃうこととか…
基幹システムとして使われている場合もあるようですし
http://tomabechi.com/
あたりをご覧になって下さい. それなりに仕事もあるようです.
本格的に使ったことはありませんが, Common Lisp が生産性が高いっていうのは想像できます.
Scheme は好き…む.
35耳学問ですみませんが:2000/07/18(火) 20:26
ああ…, なんか編集ミスしてる, 失礼しました.
36耳学問の続き:2000/07/18(火) 21:03
Common Lisp の利用例は
・火星探索機マーズパスファインダーの探索計画のシステムは Common Lisp で構築されていた.
・ノースウェスト航空の着陸ゲートなどの運用管理も Common Lisp で構築されている.
などなど, www.franz.com の Success Stories の所に沢山ありました.
フランツ社の宣伝ではありますが, それなりに実績はある訳です.
・XML のスタイルシート XSL の一部として Scheme が採用されている.
という話もありますし…
37名無しさん@1周年:2000/07/18(火) 21:36
Nintendo64でのCommon Lispの使用例はちょっと違うような。
Common Lispの上に別の言語作ったようなものだと聞いたが。
38名無しさん@1周年:2000/07/18(火) 23:46
>人間でもLISPのコードは慣れればものすごく読みやすいです。
>ほんまです。
私は LISP を使い始めて7年くらいたちますが、確かに慣れることはあっても、
決して C のようには読めませんね。

>僕なんかCのほうがよっぽど気持ち悪いです。
>文法的にはLISP方が統一されているという見方もできませんか?
それは LISP の文法が構文解析に合わせて作られているからです。
C とは成り立ちが違います。

>Lispの利用価値って思いつかない?慣れれば絶対
>C++より短い時間でシステム組めますよ。これって
>利用価値ないんですか?
まあ、これは実際の利用状況が証明しているでしょう。

>あと、スクリプト言語として使えるくらいか?
>とおっしゃってますが、人間としては見づらいとの
>意見とすこし食い違うような気がするんですが。
LISP は処理系を小さくできますし。スクリプトならそんなに
だらだら書かないでしょ。

私は LISP が別に嫌いではないです。
ただ C や C++ より生産性が高いというのはよく分かりません。
39MJH:2000/07/19(水) 04:32
会社で使うってなると「他の人も読めなきゃだめ」って事になって、
Lispみたいな使用者が少ない言語は排斥される傾向が強いよ。
辞められたら、保守できんよ。
40>39:2000/07/19(水) 04:54
Smalltalkとかもそうだね。
イイ言語=利用者が多いとは限らない(むしろ少ない)というのが現実でしょ?
Smalltalk, Lisp, Java, Ruby, Python, Pascal, ...
41名無しさん@そうだ選挙に行こう:2000/07/19(水) 07:58
研究者とか純粋にアマチュアプログラマー志そうとかいう場合にはそういう「いい言語」を使ったほうがいいでしょね。

やはり業務となるとひとりで完結したものではないですから、Cということになります。
それに言語構造として高度なのと、効率的なのとではまた別。
効率的って概念には便利な開発ソフトがあるだとかいい参考書があるだとか、いろいろな要素があると思いますし
42名無しさん@1周年:2000/07/19(水) 08:36
夏休みにlispを勉強することになったので、age
43名無しさん@1周年:2000/07/19(水) 11:15
業務(PCゲーム製作)でschemeスクリプト使ったけど
一番痛かったのは静的な型チェックが弱いことだよ。
不安でしょうがないし、それが原因のミスもいくつかやった。
つーことはsmalltalkも結構ダメだと思う。
(lispよりは読みやすいから減るとは思うけど)

こんにちではガベージコレクションとかはどうでもいい。
コンピュータが暇なときにやればいいだけだし、昔と違って
時間もかからない。
あとschemeの継続も便利だった。
44現実頭皮:2000/07/19(水) 11:16
Lisp 一般の話題ということで良いしょうか?
Kent Dybvig 著, 村上雅章訳の「プログラミング言語 SCHEME」はなかなか良いと思いました.
原書は HTML 版を Chez Scheme のドキュメントとしてフリーでダウンロードできます. 私は英語で読む根性がありませんでした.
カウンタの実装例で, 変数とサブルーチン一式を S 式にして変数に代入してしまうという例を見て, 自分の不勉強を知りました.
紫本は原書 100 頁くらいで挫折した過去がありまして, 日本語版に再挑戦中です.
45コグニティブリサーチラボラトリィ:2000/07/19(水) 11:25
ってどうでしょう。AIがらみでLISPをやっている人なら必ず知っているであろう
あのお方がいるベンチャー企業ですが・・・

www.crl.co.jp
46:2000/07/19(水) 11:43
あー?とまべち君の会社?
ページ重くて、まともに表示されんぞぉ!?

CMUで一緒に仕事をしたことがあるが、有名になったもんだねぇ。
471:2000/07/19(水) 15:36
34さん。いろいろな情報ありがとうございます。
これで他人に「LISPなんて所詮研究にしか使わん」
とか言われたときに反論できます。

44さんお勧め本もそのうちよんでみます。

とりあえず湯浅太一先生の「Scheme入門」は読んでみました。
Schemeでプログラムを実際に書いてないので何ともいえませ
んが、関数オブジェクトが変数にバインドされていて、リストの
先頭記号も評価するのがすごく不思議でした。

あと、継続の機能は確かに面白いですねー。ダイクストラがみ
たらキレそうですが。
481:2000/07/19(水) 15:38
46さんってカーネギメロン大学の方なんですか!?
すごい・・・。
やっぱ 177564は「イナナゴロシ」ですよね。
5046:2000/07/19(水) 16:20
>48
うにゃ(^^;)仕事で手伝いに行っただけ。
あっちは産学共同(←字違う?)だかんね。
MITにも行ったコトあるよ。
昼飯食ってるミンスキー教授を目撃した!(^_^;)ミーハー
511:2000/07/20(木) 19:12
>50
すごいですねー。MITならごろごろすごい人いるでしょうね。
マッカーシー教授もまだMITおられるんでしたっけ?
僕もミーハーです(笑) (←藁と書くのが2chの流儀ですかね?
あまりいい印象ないんで、、”藁”って・・・)
52>51:2000/07/21(金) 15:54
Knuthもスタンフォードを退官したみたいだし。
53>52:2000/07/22(土) 16:43
クヌース大先生は例のThe Art of Computer Programming
を書き上げるのに専念するのでしょうね。

54暇なので寝たふり:2000/07/23(日) 03:46
define-modify-macro の使い方を知っていますか?
551:2000/07/24(月) 17:40
知ってます。incfやpushみたいなsetf展開マクロを
定義するんでしたよね?確か。
561:2000/07/24(月) 17:41
あ、1=53です。
5754:2000/07/24(月) 18:52
お。さすがですねー。
私が define-setf-macro の面白さに気が付いたのは
CommonLispを始めて2年も経ってからでした。

HDDの中から↓こんなん出て来ました。(タイムスタンプが 1989/04/18 (^^;)

(defun insert (item list &key to-end index)
(if index
(cond ((<= index 0)
(nconc (list item) list))
((< index (length list))
(push item (cdr (nthcdr (1- index) list)))
list)
(t
(nconc list (list item))))
(if to-end
(nconc list (list item))
(nconc (list item) list))))

(defun insf-fun (list item &rest options) (apply #'insert item list options))
(defun delf-fun (list item &rest options) (apply #'delete item list options))

(define-modify-macro insf (item &rest options) insf-fun)
(define-modify-macro delf (item &rest options) delf-fun)

(defmacro putf (plist key val)
`(setf (getf ,plist ,key) ,val))

(defun keyf (plist val &optional default)
(do (key)
((null plist) default)
(setq key (pop plist))
(when (eql (pop plist) val)
(return key))))

(defmacro doprop ((key val plist &optional result-form) . body)
(let ((list (gensym)))
`(do* ((,list ,plist (cddr ,list))
,@(unless (eql key 'ignore) `((,key (nth 0 ,list) (nth 0 ,list))))
,@(unless (eql val 'ignore) `((,val (nth 1 ,list) (nth 1 ,list)))))
((null ,list) ,result-form)
,@body)))

(define-modify-macro addf (&rest args) +)
(define-modify-macro subf (&rest args) -)
(define-modify-macro minf (&rest args) min)
(define-modify-macro maxf (&rest args) max)
58うっ…:2000/07/24(月) 18:58
そうか (^^; 2chは連続SpaceとかTabは入らないのか。
御見苦しいモノを失礼ぶっこきました >all

PrettyPrint(pp)してね☆
591:2000/07/24(月) 20:54
いいっすねー。僕はあんまりmodify-macroを定義しないんですが、

;;; フィルポインターをもつ文字列を生成する関数
(defun make-fstring ()
(make-array 0 :fill-pointer t
:adjustable t
:element-type 'string-char))

;;; 文字列に出力するためのフォーム
(defmacro output-to-string ((string-sym stream-sym) &body body)
`(let ((,string-sym (make-fstring)))
(with-output-to-string (,stream-sym ,string-sym)
,.body)))

こんなマクロを定義して使ってます。CommonLispのマクロは強力
ですよねぇ。関数を定義するだけでシステムを拡張した気分になれ
るところがいいです。何のこっちゃですが。
601:2000/07/25(火) 01:53
あと、マクロ文字もうまく使うとすごく楽しい。
自分で構造体の表示関数を定義して、マクロ文字と組み合わせて
独自の再読み込み可能な表示形式をつくったりしたら、もう
病みつきですね〜。
僕はLISPで手続きの抽象化やら、データの抽象化やら
再帰やら、ファイル操作やらを勉強してすっかり今LISP好き
なんですが、今までのレスを見てると、やっぱり社会に出たら
あんまり使う機会無いみたいですねぇ。
61名無しさん@1周年:2000/07/25(火) 02:06
LISPから学んだことは無駄にならないから全然ok。
621:2000/07/25(火) 02:16
>61
ありがとうございます。そのうちLISPの時代が来ると信じ
て(別に信じなくても)自分を鍛えておきます。
63名無しさん@1周年:2000/07/25(火) 03:35
lispやると木とかリストとかの動的なデータ構造を操るのが
造作もないことになるねえ〜

ビジュアルが浮かぶっつうか〜

consとかcarとかの手作り感覚がいいのかね〜
641:2000/07/25(火) 12:18
そうですねー。あと、データとプログラムが同じ表現形である
のがかなりナイスです。それこそ手続り感覚でリスト作って
最後にevalじゃあ!!

でも、実はずっとGCLのVer.2.2.2使ってたので
CLOSででかいプログラムを実装したことがないのがち
と痛いです。
65名無しさん@1周年:2000/07/25(火) 12:43
いい本おしえて。
CLOS込みで。
66茗蕪しさん:2000/07/25(火) 12:55
The Art Of Metaobject Protocol は翻訳されないのかなあ?
Common Lisp オブジェクト指向 CLOS ってそのものズバリのタイトルの本があったけど, トッパンつぶれちゃったね. 最初の方しか読んでないから良し悪しは判りません.
67名無しさん@1周年:2000/07/25(火) 13:39
CLtL2じゃあないかなぁ。<決定版。
CLOSに関する記述も含まれています。
http://www.math.uio.no/cltl/cltl2.html
68生涯一解釈者:2000/07/25(火) 17:23
LispもいいけどPrologもねっ。
691:2000/07/25(火) 19:21
>67
一応CLtL2は読むにはよみました。
>66
名前わすれましたが、外国の女性の方が書かれた
本だったような気がします。これも一応読みました。
問題は知識があっても実装しないことにはイマイチ
実感がわかない、という事です...。
701:2000/07/25(火) 19:22
>66
あっ、「Common Lisp オブジェクト指向 CLOS 」
のことです。
71>69(1):2000/07/26(水) 00:41
独自の OOP system を実装してみては? (^-^)
私の場合は ZetaLisp の FlavorSystem もどきを実装して
知識を深めました。
学生さんなら、卒研テーマにもなりそうだしー。

72名無しさん@1周年:2000/07/26(水) 07:00
人が新卒が学生に車輪の再発明を奨励しているな・・・
73名無しさん@1周年:2000/07/26(水) 10:09
(^-^) こんな顔して恐ろしい奴でな。
74学生なら:2000/07/26(水) 10:33
車輪の再発明結構じゃないですか ガンバレ
75名無しさん@1周年:2000/07/26(水) 11:21
わかりきった事でも、自分の手で再発明する過程は大事だと思うよ。
本だけ読んで、わかったつもりになってるナンチャッテ君にならないためにもね。
76名無しさん@1周年:2000/07/26(水) 11:25
俺も、車輪の大発明は賛成だね。その過程が楽しいし。
ただ、人に使わせようとするんじゃないぞ。(藁
7776:2000/07/26(水) 11:26
何だよ、「大発明」って‥‥‥
「再発明」の間違いです。
78名無しさん@そうだ選挙にいこう:2000/07/26(水) 11:49
ほほえましい間違いだな(笑)

どんな車輪ができあがるんだろう。わくわく。
79茗蕪しさん:2000/07/26(水) 12:05
71 さんの話は, 所謂「車輪の再発明」とも「NIH 症候群」とも違うでしょう. 使うことが目的じゃないんだから.
Scheme の OOP 拡張なんて, いったいいくつあることか.
Lisp じゃありませんけど, Tcl にも Tcl 自身で書いた OOP 拡張がたくさんありますね.
80茗蕪しさん:2000/07/26(水) 12:07
大車輪…
8176:2000/07/26(水) 12:13
いや〜!突っ込まないで!(笑)
821:2000/07/26(水) 19:35
>71
一応、したことがあるので・・。継承って結局クラス間の
探索になりますね。LISPでOOP風の言語を実装する
のは結構簡単にできますね。LISP万歳!!
8371:2000/07/26(水) 21:03
>82
あ (^^;) ごめん
すでに経験者でしたか…
841:2000/07/28(金) 20:23
GCL-TKについて詳しくかかれたホームページとか
本とかってありますか?
describe関数だけじゃよくわからないっす。
85gimp本買った:2000/07/28(金) 20:39
gimpのScript-FuはSchemeで書くのか!
861:2000/07/28(金) 20:54
LISP風のシェルスクリプト言語をもつシェル
が存在すると聞いたことがあるんですが・・。
( emacs -nw -f shell とか返事きそうだな・・)

たしかmshだったかな・・。違うかも。 
87>84,86:2000/07/28(金) 21:29
Windows とかで?TKの話題の後じゃあ Unix かな?
GCL-TKって要Xですよね?
881:2000/07/29(土) 02:03
そうです。Linuxユーザです。GCL-TKはtcl/tkをGCLから呼び
出して使うんだと思いますが、使い方がよくわかりません。

89名無しさん@1周年 :2000/09/28(木) 11:58
『ハッカーズ』ていう本読んだんだけど、そのラストでMITのAIラボの人たちが
分裂するきっかけになった『LISPマシン』って
どーなったか知ってる人いる?

ふるいスレ上げてゴメン。
90名無しさん@1周年:2000/10/24(火) 13:33
age
91名無しさん@1周年:2000/10/24(火) 13:55
92名無しさん@1周年:2000/10/25(水) 00:33
昔、FreeBSDでgcl使っててたが、よくポックリ逝った。
今でもバージョン上がってんのか?
93名無しさん@1周年:2000/11/01(水) 02:08
Lispの可読性ってすこぶる悪い気がするんですけど、
Lispに、Cと同じだけ熟練したらCと比べて可読性の
良い言語なんでしょうか?
94名無しさん@1周年:2000/11/01(水) 02:20
UNIX + elisp のみ (外部プログラムなし) でソケットいじくれますか?
TCP で connect はできると聞いたことがあるんですが、
listen/accept はどうでしょう。あと、UDP はいかがなもんでしょうか。

一度 emacs 上で動くネットワークアプリを作りたいと思いつつ、
はや4年…。いまだに .emacs をちょこちょこいじくるくらしか
できません。はぁ…。
95名無しさん@1周年:2000/11/01(水) 02:28
>94
本ぐらい読めよ…
96名無しさん@1周年:2000/11/04(土) 12:41
97Dr.とまべち:2000/11/04(土) 13:14
これからは Lisp - Webソリューションの時代です。
98名無しさん@1周年:2000/11/04(土) 14:17
>>97 先月か今月のなんかの雑誌で、大いに語ってたね。
99名無しさん@1周年:2000/11/04(土) 15:10
Lispも中間言語として使うなら悪くないかな...
XMLのような感じで。
100名無しさん@1周年:2000/11/04(土) 18:53
なんか慶應の中西正和先生がお亡くなりになったそうで
101名無しさん@1周年:2000/11/04(土) 19:22
>>100
ほんとですか?
ショックだなあ。高校生時代に読んだ中西先生のLispの本の影響で現在
の仕事についているようなものなんで。
102名無しさん@1周年:2000/11/05(日) 01:44
ご冥福をお祈りします。

http://www.yomiuri.co.jp/zz/20001104zz01.htm
103名無しさん@1周年:2000/11/05(日) 21:43
Bitに、LISPの商用利用についての記事があったような。
104名無しさん@1周年:2000/11/05(日) 23:12
>>103 それが >>97 です。
105名無しさん@1周年:2000/11/06(月) 00:12
lispとXMLの違いがよくわからん。
なにが違うんだろう?
106名無しさん@1周年:2000/11/06(月) 00:31
おいらはどこが同じだかワカラン。
107名無しさん@1周年:2000/11/06(月) 05:58
Common LISPとSchemeのフリーで使えるインタプリタまたはコンパイラ
ってないですか?
108名無しさん@1周年:2000/11/06(月) 08:03
>>107
Schemeはguileってのがあるよ。
http://www.gnu.org/software/guile/
109107:2000/11/06(月) 08:51
>108
どうもありがとうございます。
ちょっと探したらすぐいろいろ見つかって、しまったと思いました…
Gulie以外ではDrSchemeとかMITSchemeとかCLISPとかが良さげ。
110名無しさん@1周年:2000/11/06(月) 10:37
http://www.sci.toyama-u.ac.jp/~iwao/Scheme/index.html
Scheme の総合索引としてはここがおすすめ。
111名無しさん@1周年:2000/11/07(火) 18:59
lispって、何が便利なんだ?
リスト処理だったら他の言語でも出来るし、
プログラムは読みにくいし、何が良いのか
わからんぞ。
利点を教えてくれ。
112名無しさん@1周年:2000/11/07(火) 19:11
たしかに、最近は Perl とか Python 使ってもリスト処理
できそうだもんな。しかも、そっちのほうが簡単に。
Fortran しかなかった時代はたぶん便利だったんだろうよ。
113名無しさん@1周年:2000/11/07(火) 19:13
あとは lambda 抽象が使えるのは便利なんだけど、
これについては scheme のほうが使いやすくていいな。
114名無しさん@1周年:2000/11/07(火) 19:22
利点かどうかわからないけど、プログラム自体がS式表現で書かれると
いうのが本質的なのでは? プログラムを生成・変形しながら動くプロ
グラムが簡単に書けるところがいいという気がする。

もっともそのせいでquoteが必要になって、ちょっと初心者へのハードル
になってるのかも。あと高階関数やlambda表現もハードルなのかな。便利
なんだけどね。というかそのくらい理解できない人にはプログラマを名乗っ
てほしくないぞ。

読みにくいかどうかは客観的に判断できる問題ではないけど、個人的には
他人の書いたLispプログラムとPerlプログラムなら、間違いなく前者の
ほうが理解する時間が少なくてすむ。
115名無しさん@1周年:2000/11/07(火) 19:35
>lispって、何が便利なんだ?
インタープリター言語に関する古典テキストが
Lisp(Scheme)で書かれていて、
Lispが実験材料として良く使われる。
カーネルハッカーがカーネル解析するのと同様、
Lispに新しい機能くっつけてみたりする。
医者が使うマウスやラットの役割。
116ボンクラ狂気:2000/11/09(木) 19:51
Lisp覚えてemacsどのくらいカスタマイズできるんだろ、だれか教えて
117名無しさん@1周年:2000/11/09(木) 20:00
emacslisp って、独自の関数をたくさん覚えなきゃならんので
commonlisp とか知っててもほとんど意味ない。.emacs で使う
ふつうの lisp 関数っていったら setq, if, cons, append, progn
くらいだよ。まあ慣れると自分で簡単な関数を書けるけど、
言語自体はわりと低機能なので大したものはつくれん。
mew とか、よくあんな言語であれだけ複雑なもん作るよなあ、と思う。
118名無しさん@1周年:2000/11/10(金) 11:35
>lispって、何が便利なんだ?

Lispインタープリタの心臓部は仕様がコンパクトで、
学生へのレポート課題にちょうどいい規模なのが便利。
勘の良い学生なら30分で作れる程度かな。
119>118:2000/11/10(金) 13:19
evalって、printする部分だけなら30分で・・・・ん〜なんとか
なるだろうか。
120名無しさん@1周年:2000/11/13(月) 01:19
こんにちは、
私もLispをやってみたいと思ってるんですが
みなさん、どんな風に学んでるのでしょうか?
なにか良いサイトあれば紹介してもらえないでしょうか、よろしくお願いします
121名無しさん@1周年:2000/11/13(月) 01:30
vectorにgclがある。それから
http://clisp.sourceforge.net/
にclispというのがあるよ。
俺はLispは衒学的で好きじゃない。きれいな言語というけれど
どこがそうなのかわからん。
122ボンクラ狂気:2000/11/13(月) 12:32
117さん、レスありがとう!
という訳で買ってきました。ジャーーン!
『EmacsLispリファレンスマニュアル』\4300(高い...)

なんかこれ読んだ感じだと、頭悪いから、
MSWordのマクロ以下の事しか出来ないような気がしてきた(笑)
あ、でもみんなだまされないように!!
MSWordのマクロはとってもじゃないですが、あれでPerlのように
文字列処理が簡単にできると考えてはいけません。
昔、仕事でマクロを作ったときは、泣きました(笑)
Excel見たいに使いやすくなるのはいつのことだろ...

おっと脱線。
Lispは名前がいい!ただそれだけで勉強しがいってもんが
あるんでしょう。これからEmacsLispをがんばって勉強します。
みなさん、よろしく。
123117:2000/11/13(月) 13:08
なんだ、いまは4300円なのか? 昔はドラフト版のダサい
装丁のやつで7000円以上もしたのに…。
124名無しさん@1周年:2000/11/13(月) 13:32
LISPが綺麗なようにアセンブラも綺麗な言語です。
綺麗っていうのは余計な機能がないってことだと思うが…

まあLISPで何か役に立つもの作れとは言わないけど、少し触
っといたほうがいいでしょ。アセンブラと同じでね。
125名無しさん@1周年:2000/11/13(月) 15:42
>LISPが綺麗なようにアセンブラも綺麗な言語です。
>綺麗っていうのは余計な機能がないってことだと思うが
厨房丸出しだな。

Lispが汎用言語であるともし前提するなら、お世辞にもきれいだとは
言いたくない。
126名無しさん@1周年:2000/11/13(月) 15:55
>>125
なんでよ。他にどういう理由で綺麗だっていえるのさ。
興味深いって言うなら分かるけど、それはアセンブラも同じだろ?
汎用言語云々のところは何が言いたいのか良く分からん。
127名無しさん@1周年:2000/11/13(月) 16:14
Lispのどこが余計な機能がない部分ですか?Schemeの仕様書が
小さい部分ですか?(藁

>汎用言語云々のところは何が言いたいのか良く分からん。
勉強不足です。っていうかまじ中坊?。
128名無しさん@1周年:2000/11/13(月) 17:19
関数を定義するのも、IFもループも同じ構文で書けるじゃない。
これゆうのが言語仕様をすっきりさせてるんでしょ?(他にもあるけど)
もう一度聞くけど他にどういう理由で綺麗なのさ?

>Lispが汎用言語であるともし前提するなら、お世辞にもきれいだとは
>言いたくない
これで何が言いたいの?なんで汎用言語と前提するのさ。
って言う意味で聞いたんだけどなぁ。
129名無しさん@1周年:2000/11/13(月) 17:49
>128
>関数を定義するのも、IFもループも同じ構文で書けるじゃない。
>これゆうのが言語仕様をすっきりさせてるんでしょ?(他にもあるけど)
「同じ構文」って括弧でくくることか?関数の定義も制御構造も関数呼び出し
と同じように括弧で括ることに必然性はない。むりやりすべてを統一的に扱お
うとしてむしろ汚い。まあ見かけが同じになるということが綺麗だといえばそ
れまでだが。

>もう一度聞くけど他にどういう理由で綺麗なのさ?
意味が分からない。綺麗な言語といえる条件を聞きたいわけ?

>これで何が言いたいの?なんで汎用言語と前提するのさって言う意味で聞い
>たんだけどなぁ。
限られた領域では、例えばLispによるLispのための研究とか、Lispでないと
どうしてもだめな領域があるかも知れないし、そういう分野に関しては知らな
いから。
130名無しさん@1周年:2000/11/13(月) 18:21
>>129
LISPは綺麗な言語だってのが通説かと思ってた。
だからその理由を俺なりに想像してたまでさ。
まあこの通説が俺の勘違いなら別に文句はない。
あんまり強く主張するようなないじゃないから最初からsageで
発言したのよ。
131ボンクラ狂気:2000/11/14(火) 11:46
俺は中途半端は嫌いだ!
おれはプログラミング言語として、
Perlみたいに日常言語を目指す(そんなの絶対無理だけど(笑))のと、
もう一つの極端はLispみたいなものを考えてるけど、
どっちかっていうと言語の仕様は表記のレベルでは簡単なほうが、
”ロマン”があると思わん?(笑)

おれはLispの括弧だらけのソースに魅せられた!
別のロマンを知ってる人は教えて下さい。
小生、高卒で専門知識が一切ありません。
(文学部だったけど、中退しなきゃよかったよ。。。トホホ)
とりあえず熱すぎるからsageとく。
133名無し人間:2000/11/14(火) 13:41
Lispで何を作れるの?
134名無しさん@1周年:2000/11/14(火) 13:44
LISPで、たまに「生産性が高く、C++で一週間かかるところを
2日で出来てしまう」というような賛辞を聞いたりするけど、
本当?
なんか信じられないんだけど。
135名無しさん@1周年:2000/11/14(火) 14:14
こんにゃく問答だな…Lisp は関数型言語としてもリスト処理言語
としても中途半端だよ。末尾再帰をちゃんとサポートしてないし、
型チェックもない、遅延評価もない、シンボル t と nil を特別
扱いしてる、その他いろいろ。Scheme は Lisp より単純で美しい
が、これも完全な関数型言語とはいい難い。ML や Haskell と
いった言語になるともっと完全に近いが、構文的にはどっちも
綺麗じゃない (ML の構文の複雑さは pascal を思い出させる)。
関数型言語を使うとなぜ生産性が上がるのかは、ここを参照:
http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html
Lispは木構造の探索とか、そういうのは得意だが、一般的には
CLOS 使っても C++ 使っても生産性は同じようなもんだろう。
あと、いちばん美しい言語といったらチューリングマシンか一般再帰関数だろ (藁
136名無しさん@1周年:2000/11/14(火) 14:25
型がないといえば、PerlやRubyも型が少ないけど、
これらは悪なんか?
137名無し人間:2000/11/14(火) 15:44
LISP=3流言語と結論しても宜しいでしょうか?
138名無しさん@1周年:2000/11/14(火) 15:49
>>135
チューリングマシンを言語と呼ぶか?
ユニバーサルチューリングマシンは何と呼ぶ気だ?

>>136
Lispに型がないわけじゃないよ。
オブジェクトには型あるよ。
変数は型付けされないけどね。

>>129
必然性がないのはむしろ全てが異なる事の方。
異なる必要がないものをそのままにしておいたと考えろ。
それに関数呼び出しとか制御構造って何だよ?
リスト形式で統一というのは本質じゃないだろ。
まがりなりにも関数型なんで基本は評価と適用だ。
制御構造と呼ばれるものもすべて基本形に還元されるマクロだ。
139名無しさん@1周年:2000/11/14(火) 15:54
>>137
三流以下プログラマにとってはそれでいいよ。
140名無しさん@1周年:2000/11/14(火) 19:08
じゃあ、仮にJavaとLISPが使いこなせるプログラマがいたとして、
どっちを使えば生産性が上がるんだ?
分野によるんだろうけど、強引に優劣をつけるとしたら
Lispは健闘するのか?
141名無しさん@1周年:2000/11/14(火) 22:51
その前にJavaは健闘するのか?
142名無しさん@1周年:2000/11/15(水) 00:56
生産性で行けば、C/C++が一番。定説です。
143名無しさん@1周年:2000/11/15(水) 02:19
僕の先輩が言うには
「VBAより式言語の方がいいだろ!!!」的なことを仰ってました。
五十歩百歩。(TT
144名無しさん@1周年:2000/11/15(水) 02:22
PROLOG
145名無しさん@1周年:2000/11/15(水) 02:59
>142
そのとおり。
C/C++しか使えない3流にとっては。
146名無しさん@1周年:2000/11/15(水) 03:06
つまんねえつっこみするなよ。寒すぎ。
147名無しさん@1周年:2000/11/15(水) 04:39
↑つまんないもなにも事実だろ
148名無しさん@1周年:2000/11/15(水) 05:11
>147
Lispも使える一流プログラマがLispを使った方が*プログラミング一般*の
生産性がC/C++と同等かそれ以上であることの証明をして下さい。
149名無しさん@1周年:2000/11/15(水) 05:16
148の訂正
Lispも使える一流プログラマは、Lispを使うと*プログラミング一般*の
生産性がC/C++と同等かそれ以上になることの証明をして下さい。
150名無しさん@1周年:2000/11/15(水) 05:33
>149
あ、俺も知りたい。
LISPだと簡単に出来てC++で冗長になる簡単な実例を
挙げるとかね。
151名無しさん@1周年:2000/11/15(水) 05:50
そういう例はたくさん挙げることが出来るでしょ。再帰とかリスト処理とか。
そもそもLispとCを比較するのは不毛だろ。
Lisp系言語がCのような汎用性を目指しているならともかく。
152名無しさん@1周年:2000/11/15(水) 09:28
>>149

オレが一番便利だと思うのはラムダ式だねー。
まあそれは文法的な問題だから、Cっぽい言語でも
できることだけど。オブジェクト指向言語では「ブロック」が
代わりになることがおおいし、この板でもC++の関数内クラスで
似たような意味をもたせる提案があったね。

関数がファーストクラスオブジェクトなのも便利だね。
生産性うんぬんっていうのは、ほとんどの場合、
型つけが弱くて構造を柔軟に作れることが言ってることが
多いと思う。

今だったら「perlの方が便利」っていうのに近いんじゃないの?
perlよりか、emacs-lispみたいに文字列処理機能強くしたlisp
の方が便利だと個人的には思うけどね、構造が柔軟な分。

けど、ある程度の規模が必要になってくると、型付けの弱さは
弱点になってくるよ、やっぱり。
昔と今じゃ作ってるものの規模が違う、と思う。

あと動的に木を作ってそれをプログラムとみなすことができることかな。
これはほぼlisp系ならではだね。perlにもevalってあるけど、
再インタプリトだからちょっと意味合い違うし。
153名無し人間:2000/11/15(水) 09:33
>私の経験では,Lispでちゃんとプログラムが書ける人は,たいてい他の
>言語もあっという間にマスターできますし,オブジェクト指向やパター
>ンなどの考え方も素直に取り入れることができます.1さんは学生のう

ほんまかいな。
154名無しさん@1周年:2000/11/15(水) 16:02
>>150
コンパイラ
155名無しさん@1周年:2000/11/15(水) 16:11
>>154
藁タ

昔、LispコンパイラーがLisp自身で書かれているって良く分からなかった。
でも最近のCコンパイラもC自身で書かれているからなァ〜。

あ、でもその記述サイズが問題ですね。
156154:2000/11/16(木) 09:15
ん?
マジなんだけど。
どーせLispもわからんここの奴らは力仕事のプログラミングしかやってねーだろーから理解できないだろうがね。
157名無しさん@1周年:2000/11/16(木) 13:04
いんや、Lispがシンプルなコーディングで自分自身のコンパイラーを記述できると言う情報は知っています。
158ボンクラ狂気:2000/11/16(木) 14:04
>135
レスありがとうございます。

> Lisp は関数型言語としてもリスト処理言語
> としても中途半端だよ。末尾再帰をちゃんとサポートしてないし、
> 型チェックもない、遅延評価もない、シンボル t と nil を特別
> 扱いしてる、その他いろいろ。

なーんにも知らなくてすみません。紹介して頂いたサイトなどで
もっと勉強します。ちなみに皆さんやっぱり学校で勉強されたんですか?
結構知識があるようですが。。
159名無しさん@1周年:2000/11/16(木) 17:17
>>157
そうですか。すまん。
いやね、実際コンパイラ書いてみればLispよりC/C++の方が楽なんて言わんだろうと思ったもんで。
どっかにしまってあるデータ取り出してちょっとゴニョゴニョして適当なソケットに流し込むような事だけだったらどんな言語でもかわりはしないよね。
そんな仕事ならC/C++しか知らない奴ならC/C++が一番に決まってる。

あと末尾再帰云々と行ってる奴もさ、Common Lispなら大体コンパイラもあるだろー。
コンパイルした後に試してみたのか?
コンパイルの段階では普通ちゃんと繰り返しに変換されてんだっつーの。

型情報も付けられるようになってるしね。
商用コンパイラじゃあオプションによって厳密にチェックする(warningではなくerrorにする)事もできたはずだけど。
160名無しさん@1周年:2000/11/16(木) 17:19
lispを習わせる大学ってどれくらいあるの?
おれが出たとこはschemeとprologが学部課程に入っていた。
161名無しさん@1周年:2000/11/16(木) 18:04
>>159
157じゃないけど、コンパイラ書くって話だったら
CとC++一緒にしちゃだめだし。
STLとyacc/lex組み合わせればとても楽よ。
あんたlispの評価はいいけど、C++の評価が低すぎ。

ちなみにボクはlispそこそこやる人です。
162名無しさん@1周年:2000/11/16(木) 18:48
そもそもLISP使ってる職場がほとんど無いだろ。
163名無しさん@1周年:2000/11/17(金) 01:28
Lispの方を高く評価する人は、ろくにSTLも使えない
3流プログラマということで決定ですね?
164名無しさん@1周年:2000/11/17(金) 01:29
ウチも大学でLisp習ったよん。ばりばり組んでた。
そのころは便利だなとは思ってたけど、C++をメインで
やってる今となっては特筆すべきは何もない。

いろいろ言語やったけど、Prologだけは他よりも異質だったと思う。
Lispよりは広まってほしかったけど、もうそうなることもあるまい。
165名無しさん@1周年:2000/11/17(金) 03:17
Lispねえ……。
AutoLisp...(utudasinou
166名無しさん@1周年:2000/11/17(金) 12:45
AutoLISPねえ…。ARXもねえ…。
167名無しさん@1周年:2000/11/17(金) 13:50
結局C/C++派は相手が書いてないとこをつつく事しかできない馬鹿ばかり。
Lispを使う職場が少ないのはプログラマの仕事の殆どは力仕事だという事実があるからであり、Lisp使えない馬鹿ばかりという事だろ。
168名無しさん@1周年:2000/11/17(金) 14:00
>>167
くだらないアプリばっかり作ってます。
でもあんたもそれ使ってるんでしょーが!
169とゆーか:2000/11/17(金) 14:33
lisp使って生産性が上がるほどアルゴリズム的に
複雑なものって何があんのよ? 一般的な業務として。
それよりも、ひたすら肥大化するプログラムをうまく
まとめられるという特徴 (ようは、oop だな) のほうが
ありがたいんだろ、結局は。lisp にしても、CLOS が
もっと早く生まれてて、よくできたコンパイラやクラス
ライブラリや開発環境がたくさんあったら、歴史は変わっていた
かもしれない。
170名無しさん@1周年:2000/11/17(金) 16:00
Lispはプログラミング言語そのものとしてみてもCより優れて
いるとは思えない。ちなみにCが使えてLispが使えない
なんてことはあり得ないと思う。
171名無し人間:2000/11/17(金) 16:24
だからさぁ、何が作れるかとかじゃなくて、洗練された言語として
Lispは優れているわけ。
C/C++を使って三流ソフトウェア企業の中でせこくやっている人間は
他のスレッドに行って欲しい。
172名無しさん@1周年:2000/11/17(金) 18:07
>>171
プログラムとは何かを作るための言語じゃないか?
そのための洗練であるはず。
何が作れるかではない、などとは本末転倒なこと言ってないか?
173名無しさん@1周年:2000/11/17(金) 18:08
>171
なんか数学者がロケット技術者に文句言ってる見たい
174名無しさん@1周年:2000/11/18(土) 00:25
lisp狂信者、発言するのやめてくれないかな?
普通のlisperがバカにされるから。
それを狙ってやってるのか?
もう放置しようよ。
175名無しさん@1周年:2000/11/18(土) 01:24
つーわけでsage
176元Symbolicsユーザ:2000/11/18(土) 01:39
174に賛成
大学によくいる,Lispオタクの学生をみているようだ.
177元Symbolicsユーザ:2000/11/18(土) 01:40
あ,あげちゃった
ごめんなさい
178名無しさん@1周年:2000/11/18(土) 02:33
つまりLISPは負けを認めたということだな。
179おもしろいねぇ:2000/11/18(土) 02:50
171=LISP
180名無しさん@1周年:2000/11/18(土) 14:36
LISPと言う流行に乗り遅れた言語を、後生大事に使い続けている様なこだわり屋さんは
優秀なプログラマである確率が高いと思う。
実際、ぼくの知っている開発会社はそう言う人ばかりだった。
181名無しさん@1周年:2000/11/18(土) 14:48
おそらくLisperのほとんどはC/C++を使えるが、
ここで吠えてるC/C++屋はLispを使えないだろうね。
使えないものや手に入らないものをけなすというのは良くある人間的行動です。
かわいそうだから弱い者いじめはやめてあげましょう。
182名無しさん@1周年:2000/11/18(土) 15:01
言語そのものを作ってるならともかく、
使えるか使えないかで、差別してもあんまり意味がないような?

美しい言語仕様だとは思いますが。LISP
183名無しさん@1周年:2000/11/18(土) 15:11
最近は情報系の学科でも教えないところもあるんだよね.
困ったもんだ.
184名無しさん@1周年:2000/11/18(土) 16:31
実際に使うかどうかはともかく、視野を広げるって意味では
lispやprologは知ってて損のない言語だと思う、たしかに。
185名無しさん@1周年:2000/11/18(土) 16:36
Lisperになったら
他の言語使えないような気が・・・
186鏝半(元Symbolicsユーザ2):2000/11/18(土) 17:12
たまにはLISPもいいよ。
手続き型に書きたきゃ書けるし。
187名無しさん@1周年:2000/11/18(土) 18:12
結局、美しい仕様だとか、たまには良いとか、使えないから批判する
だけだとかそういうことしか言えないんだね。
肝心の生産性はいまいちってことなんだろうね。
188名無しさん@1周年:2000/11/18(土) 18:20
向き不向きがあるから、並べて論じてもねえ。
189名無しさん@1周年:2000/11/18(土) 20:06
並べて論じてもあんまり意味無さそうだから、「そういうこと」に話題
が向くのはごくありがちな成り行きだとおもうなぁ。
190名無しさん@1周年:2000/11/18(土) 20:58
>>187
そうだよ。
C/C++の生産性なんてそんなもん。
191名無しさん@1周年:2000/11/19(日) 00:24
>190
プログラムの定理その1

何の言語でも、生産性が低いのは言語のせいじゃない。
192名無しさん@1周年:2000/11/19(日) 01:14
「言語だけの」の間違いだろ?
193名無しさん@1周年:2000/11/19(日) 02:47
要はC/C++オンリーのプログラマの生産性が低いってことだろうよ。
194名無しさん@1周年:2000/11/19(日) 12:03
処理系にbugが少ないというのもメリットかな。
古典に属するので枯れている。
195名無しさん@1周年:2000/11/20(月) 04:16
C/C++よりも生産性が高いとして、何で普及しないの?
196名無しさん@1周年:2000/11/20(月) 09:47
MicrosoftがLispの処理系を売っていないから。
197>195:2000/11/20(月) 18:14
こぼらーが絶滅しないのと同じ理由
198名無しさん@1周年:2000/11/20(月) 20:53
>>195
日本人に英語も喋れない人間が多いのと同じ理由。
199名無しさん@1周年:2000/11/20(月) 21:31
>149 名前:名無しさん@1周年投稿日:2000/11/15(水) 05:16
> 148の訂正
> Lispも使える一流プログラマは、Lispを使うと*プログラミング一般*の
> 生産性がC/C++と同等かそれ以上になることの証明をして下さい。

その手の Journal に昔から山のように実証論文があります。ちょっと前に見
た例で覚えている奴は、米海軍が行なった実験で、イージス艦の実時間システ
ム(敵と守るべき空母と味方の機体がいり乱れて大騒ぎ)のプロトタイピングを、
Haskell, Ada, Ada9X, C++, Awk/Nawk, Rapide, Griffin, Proteus,
Relational Lisp 等々のまあ、そういう変態言語ばっかのようなきがするけど、
で競わせる(たしか、チームがヨーイドンでシステムを作る)っていうものでし
た。確か、最優秀だったのは、HaskellとRelational Lispで、コードの量は最
下位の C++ の 1/10以下で開発時間も10時間とかそんなものでした。ちなみに
C++ は規定時間(60時間くらいだったか?)内に開発が終らなかった。ここで、
もっとも短時間に開発出来たのが、確か Relational Lisp (Lisp にデータベー
ス用の論理プラグラム言語風拡張を施したもの。竹内さんの NUE なんかと似
てるのかな?) で、Haskell の半分以下(4、5時間?)だったはず。コードの量
はHaskell の倍以上だったかな?
200つづき:2000/11/20(月) 21:31
保守性、デバッグの容易さなんかでもこれらの言語は C++ を圧倒していたと
いう結論でした。印象的だったのは、Ada と Ada9X がかなり優秀だったこと
でこの論文では、ここに並ぶ変態言語を押しのけて、Haskell, Relational
Lispの次くらいに来てたこと。因みに、この比較では、C++ と Awk/Nawk が
だんとつで最下位でした。

Griffin っていうのは、MLの拡張らしいので、Haskell なんかとは近いような
気がするんだけど、この実験ではあんまり成績が良くなかったんだよな。Ada
も C++ も似たようなもんに見えるのに大きな差が出てるし、なんか不思議で
すね。
201名無しさん@1周年:2000/11/21(火) 00:24
>>199-200
「その実験のC++のプログラマがたまたまヘボかっただけ」に一票
202名無しさん@1周年:2000/11/21(火) 00:46
201は、「情報科学のしろうとである、ていうか糞グラマである」に一票
203名無しさん@1周年:2000/11/21(火) 01:13
なんかこのスレでLispを持ち上げている奴ってC/C++を使ってる奴を勝
手にC/C++オンリーと決めつけているとことがイタイな。たとえLispを
使ったことがないとしてもC/C++、そのほかの言語が使えてLispが使え
ないわけがない。Lispはある特殊な領域では適しているかも知れない。
だがCのような汎用言語としてみた場合、劣っていると思う。
204名無しさん@1周年:2000/11/21(火) 10:10
>>203
その意見の根拠への参照を示せ。
どのジャーナルだ?

205名無しさん@1周年:2000/11/21(火) 13:56
>>202
199-200を書いた人でも202を書いた人でも良いですが、
その実験における各チームの能力差に関する考察をお
願いします。
206名無しさん@1周年:2000/11/21(火) 14:08
つーか軍なんだからマトモな実験するんじゃないか普通?
能力差うんぬんの話は論点をずらしたいだけのような気がする。
207名無しさん@1周年:2000/11/21(火) 14:18
VBやC#も加えてもう一度やって欲しいな
208名無しさん@1周年:2000/11/21(火) 14:52
各言語につき少なくとも3チーム無作為に選んで実験したとかなら
信憑性があるけど、各言語1チームだけだと能力差って言われても
仕方ないなあ。この手の実験の統計処理はよっぽど慎重にやらないと、
だれも信用しないなあ。でもC++やLISPなら3チームくらいすぐ集まるけど
他のはマイナーすぎてチーム探すのも大変では?
209名無しさん@1周年:2000/11/21(火) 15:20
Scheme好きだけどね。MLも好きだけどね。結局、いまのところはC++なんだよね。
やって損なしだと思うけど、C++を虐げるほどのものじゃない。

お仕事で「やらなくちゃいけない」のでやってるプログラマさんと、
好きで勉強なり研究なりをやってる学生さんのちがいだね。
入れ込むのはいいことだけど友達なくすなよ。
210んー、むしろ:2000/11/21(火) 16:06
この実験は、米海軍がやったもんだから(金もかかってるだろうし)その辺りの
コントロールはちゃんとしているでしょう。それに、これだけマイナーで高度
な言語ばかり揃ってるわけだから、人材的に一番有利なのは誰でも知ってる
C++でしょ? 経験ある人多いんだからさ。だから、そういうファクターを考慮
するとC++はますます評価下がると思うよ。Haskell のプログラマーって、研
究者ばっかりだろう? 偏見かな? それなのにこんなテーマのバリバリの制御プ
ログラムで勝負して勝つんだから大したもんだと思うけど?
211名無しさん@1周年:2000/11/21(火) 16:44
この板にも Haskell 知ってる人間が結構いるってことは、
勉強してるプログラマが多いのか、それとも学者が
結構見てるのか、どっちだ?
212名無しさん@1周年:2000/11/21(火) 17:43
>>206
同意。
どうしても、LISPをC/C++の下に置きたい痛いC/C++信者がいるらしい。

ちなみに、俺はC++プログラマだ。LISPは、かけらも知らん。
213名無しさん@1周年:2000/11/21(火) 18:26
このスレを見て思ったこと。やっぱアメリカってあなどれねえな。
日本でこんな実験しようとするところなんて (企業でも大学でも) あるか?
214>213:2000/11/21(火) 18:44
軍だからじゃないか?
まぁ、アメリカが侮れないのは当然のこと。
215名無しさん@1周年:2000/11/22(水) 00:08
つーか、研究者は職業プログラマより格段に頭がいいから、haskellが
勝っただけじゃないの?
製品を作るんじゃなくて、難問を解決するプログラムを作るんだろ?
研究者が有利に決まってる。
C++のチームは大方、職業プログラマだろ。
216名無しさん@1周年:2000/11/22(水) 00:35
>>215 の頭が悪いのはわかった
君は低学歴プログラマなんだね
217名無しさん@1周年:2000/11/22(水) 01:51
>>216
Lisp信者は何でこういうことばかり言うのかな。
218名無し人間:2000/11/22(水) 10:40
>>217
C/C++信者が頭悪いからでしょ。
煽るから煽り返されてるだけです。
219名無しさん@1周年:2000/11/22(水) 10:42
LisperとC/C++信者だと平均のプログラミングレベルはLisperの方が
格段に上です。
言語の優秀さがプログラマーにも現れている一例ですね。
220名無しさん@1周年:2000/11/22(水) 10:45
LispがC/C++より使いでがあるのは動的にコードを作れるから
に他ならないのでは?
221名無しさん@1周年:2000/11/22(水) 10:54
haskell は使ったことないけど、sml (ニュージャージーでインプリしたML)は
使ったことあります。haskell って ML の実用版みたいなもんなのかな?

ML は慣れると、麻薬的な魅力がありますね。型の威力を感じたな。type
inferenceっていいわ、ものすごく。ML の入門テキスト(大堀さんが書いたや
つ)の最後であっと言う間にパーサーが書けちゃうのは魔法みたいだった。
222名無しさん@1周年:2000/11/22(水) 11:14
223名無しさん@1周年:2000/11/22(水) 11:21
http://www.galconn.com/icfp00/index.htm

ICFP で、ray tracer を72時間で作るプログラムコンテストで Haskell98を使ったチームが優勝、だって。なんかすごい言語みたい。
224名無しさん@1周年:2000/11/22(水) 11:45
名無しさん@大黒学ML講座密かにファンです。
haskellは15年前くらい前からあったと思います。
C++やEiffelより古いです。

225名無しさん@1周年:2000/11/22(水) 12:19
>>222
ここ見ると、なんか、とうとう関数型言語が take off しそうですな。

ここ数年で実用的なプログラムを題材にした haskell の教科書がアメリカで
いっぱい出てるんだね。

日本は、また乗り遅れるのかな。

>>224
もう15年にもなりますか.... 91年頃に sml 使ってたけど、あの頃はま
だ haskell って名前しか聞いたことなくて使うことが出来なかった。
大堀さんのマキアヴェッリっていう ML はどうなったんだろう?
226名無しさん@1周年:2000/11/22(水) 12:35
永久にtake offしないに1票。
そもそも関数のみで一般性のある言語を構成しようというのは
無理がある。
オブジェクト指向でそれをやったSmalltalkと同じ。
227名無しさん@1周年:2000/11/22(水) 16:29
>>218
このスレッド見る限りLisperの方が馬鹿に見えるよ。
228名無しさん@1周年:2000/11/22(水) 16:38
LISPはOOじゃないから、あまり良くないんじゃないかな。
229名無しさん@1周年:2000/11/22(水) 17:56
OOじゃないから良くない、って理屈はおかしいと思うが。
230名無しさん@1周年:2000/11/22(水) 19:01
みんな!まずここからはじめよーよ

リスぷ最古ーーーーー
231名無しさん@1周年:2000/11/23(木) 03:12
型が無いような言語は駄目だろ。
232名無しさん@1周年:2000/11/23(木) 17:37
>230
お前みたいの入ってくると、分かってる人が
逃げていくだろ。ドッカ逝け。
233名無しさん@1周年:2000/11/23(木) 21:11
>LISP使う仕事

AutoCAD系カスタマイズ・・・・・・・・・
234名無しさん@1周年:2000/11/24(金) 12:30
だから型ありにもできるんだって
235名無しさん@1周年:2000/11/28(火) 00:24
>228、229

LISPは最古のOOだって。CLOSがあるでしょ。
http://www.os-omicron.org/~takano/private/software/java/lisp.html
236名無しさん@1周年:2000/12/01(金) 12:44
>>199

C++が不利になるような条件ばかりを揃えた、いんちきベンチマーク。

1、C++ がボロ負けなのは、生のC++で1からプログラミングしたから。
適当なライブラリを揃えてから勝負すれば、時間内には終わるはず。

2、C++は「プロトタイピング」のための言語ではない
「プロトタイピング」段階での生産性の低さに関しては認める。
なぜなら、C++は「プロトタイピング」を目的に設計された言語ではないからだ。
C++の真価が発揮されるのは、再利用性・保守性までを考えたとき。

# プロトタイピングなんて不要、上流設計はUMLでやれ(藁
237名無しさん@1周年:2000/12/01(金) 12:51
>>234
それは、型をパラメタライズできますか?
# Lispに関しては、普通のCommon Lisp と Scheme R5RS くらいしか私はしらないので...

AdaとかC++(Release 3.0以降)ならテンプレートを使えば、
タイプセーフなままで、ジェネリックプログラミングが可能ですよね。
238名無しさん@1周年:2000/12/01(金) 14:15
>236
言われてみれば、C++は過去の資産を再利用することに全精力を
傾けて作られた言語だよな。
一からプログラミングする実験なら意味が無いな。
239名無しさん@1周年:2000/12/02(土) 01:47
いつの間に日本語のホームページが出来たんだろう > Franz社
http://jp.franz.com
240名無しさん@1周年:2000/12/02(土) 02:08
Adaっていい言語なの?
241ファイルマネージャとプログラムマネージャ:2000/12/02(土) 02:22
っていうかさLISP技術者募集してる会社10社あげられる?
むりでしょ
242名無しさん@1周年:2000/12/02(土) 02:29
>241
あげられないと、どんなことがわかるの?
243名無しさん@1周年:2000/12/02(土) 02:46
なんでみんなC++を擁護しようとするんだろ・・・。
ダメ言語の筆頭がC++だと思うんだけど。
他に選択肢がないから嫌々使ってるんじゃないの?。
みんなはC++なんかで満足しちゃうの?。
244名無しさん@1周年:2000/12/02(土) 02:47
>242
1を読めよ
245名無しさん@1周年:2000/12/02(土) 03:01
>>243
C++は覚えるまでが非常に大変で複雑だから、その点は
ダメ言語なのかもしれないけど、知識と経験があれば
良い言語でしょ?
246名無しさん@1周年:2000/12/02(土) 03:13
>ダメ言語の筆頭がC++だと思うんだけど。
ひとりで思ってろ!!!
>他に選択肢がないから嫌々使ってるんじゃないの?。
ちがう!!!
>みんなはC++なんかで満足しちゃうの?。
満足はしてないんじゃないかな?
247242:2000/12/02(土) 03:35
>241&244
そりゃ"LISP技術者"として募集なんか、ほとんどしないよ。
いわゆる現場ではLISPが活躍しているのは
AutoLISP関連と一部の機械制御だけだけだろうけど、
いまさら、それを指摘したいわけじゃないよね。
だから、なにがわかるのかなぁっと思ったので。

計算機プログラムを論じる上では、LISPは基礎教養のうちだし、
LISPを使って研究をすすめたりもするので、
そういう意味ではLISPを使って仕事できるんだけどね。
248名無しさん@1周年:2000/12/02(土) 03:35
>246
なんで3番目だけ口調がやわらかいんだろう(笑)
249名無しさん@1周年:2000/12/02(土) 03:45
>247
>計算機プログラムを*論じる*上では、LISPは基礎教養のうちだし、

そだね、でも残念だけど 計算機を使う仕事(プログラマとかね)の
基礎教養ではないよね

LISPかぁ、勉強したいなー muleのキーバインドぐらいしか
しらんな
250名無しさん@1周年:2000/12/02(土) 05:51
>>240
Adaは複雑と言われてますが、Ada83なら結構簡単です。http://www.adaic.org/
からドキュメントやコンパイラが探せるので、ちょっと見てみて下さい。

>>249
muleを使っているんでしょうか?『リスト遊び-Emacsで学ぶLispの世界-』
という本が売っているので、これを買って遊んでみては。1200円だし。

http://www.ascii.co.jp/books/detail/4-7561/4-7561-3442-4.html

251名無しさん@1周年:2000/12/02(土) 06:17
C++嫌いと LISP好き は同じ人かな??
同じ人と仮定していうと

社会に出てからLISPだけで食っていくのは無理だよ
そんなやつ日本に10人いないよ
(もっといる知っている、もしくは俺がそうだって人がいたらごめん)
でも君が嫌いなC++のプログラマになっても
きっと優秀なプログラマになると思うよ
プログラマとしてやっていく上でLISPの知識は必須ではないけど
きっと役に立つことは保証できるよ
252名無しさん@1周年:2000/12/02(土) 11:19
Franzのホームページは自信たっぷりなのが面白い。
LISP最強だってさ。
http://jp.franz.com/base/product_acl_features.html

事例を書いている人達も、LISP大好き人間なのがひしひしと伝わって来る。
253名無しさん@1周年:2000/12/02(土) 11:34
>251
私の知り合いに、50%位LISPで食っている人がいます。
彼曰く、プロトタイピング的に開発を進める場合、他の言語と
2-3倍生産性が違うのだそうで。
254名無しさん@1周年:2000/12/03(日) 21:37
>>236

そんなことないと思うぞ。Ada, Ada9X は haskell, Relational LISP の次
位に優秀だったんだろ?
Ada, Ada9X は、システムを書ける言語だから C++ の直接のライバルだぞ。
255名無しさん@Haskell.org:2000/12/03(日) 22:25
Haskell Report 1.0 が出たのが 1990年です。なので正式には Haskell
は 1990年〜 でしょう。Preface には 1987年の Oregon の関数型
プログラミング言語と計算機アーキテクチャの会議で「それまでの数多の
非正格純関数型言語をまとめあげる」という合意が得られ、Haskell は
書かれた、とあります。
1987年以前にこの手の言語はいくつかあり、1987〜1990年にかけて
まとめあげられたようです。詳しいことは Lennart に聞くといいのかな。
Miranda が商用となったことも関係あるのかも。
256名無しさん@1周年:2000/12/04(月) 19:40
age
257名無しさん@1周年:2000/12/04(月) 23:08
自明なことだと思ったので敢えて書かなかったのだが…

>>254
Adaは米国国防総省(DOD)の資金援助で開発されたプログラミング言語。
DODの制御システム作成での、ほとんどの要求を満たすように設計されたからだ。
「イージス艦の実時間システム」で好成績を収めて当然。

# マルチタスク処理の扱いに関してAdaが優れていることに異論は無い。
# Ada9Xの方に関しては、どシロートなのでわからん。
258ヽ(´ー`)ノ マタリンコフ:2000/12/04(月) 23:08
なんとなくxyzzyが使いたくなったのでLispやることにしたぁヽ(´ー`)ノ
259名無しさん@1周年:2000/12/05(火) 02:38
57 68 61 74 20 61 6e 20 61 73 73 21
260名無しさん@1周年:2000/12/07(木) 23:22
どなたかLispの分りやすいサイト知ってたら教えて下さい。age
261名無しさん@そうだ選挙に行こう:2000/12/09(土) 12:32
visual age for lisp
262aaaaa:2000/12/10(日) 15:19
記号処理(パターンマッチ)はLISPのほうがC++よりどう考えても楽だと思う。
また、CommonLispは演算子や制御構造にあたる部分すらもユーザで定義
できるので言語処理系を自分で作って遊ぶのには持ってもいです。
263名無しさん@1周年:2000/12/10(日) 17:25
Lispとはメタ言語なの?
264名無しさん@1周年:2000/12/10(日) 18:08
LISPをC++で作ろうと思っているのですが、、。どうでしょう。
265名無しさん@1周年:2000/12/10(日) 18:11
記号処理はパターンマッチじゃないぞ?
266名無しさん@1周年:2000/12/12(火) 10:54
>>262
あやしい制御構造書くと、他人が読めなくなる。メンテ不可能。
でも、まあ、CommonLispなんて、かわいいほうなんだな、これが。
Schemeの「継続」なんて、ダイクストラ氏がショック死するぜ。

C++でも演算子の多重定義が可能だし、
例外処理以上にごちゃごちゃしたものはいらん。
267名無しさん@1周年:2000/12/12(火) 10:57
>>266
意味(表示的でも操作的でも)を理解してしまえば継続は大して
難しくないのでは? 部分継続なんてのも一緒に使うと面白いよ.
268名無しさん@1周年:2000/12/12(火) 16:27
>267
Schemeになじみの薄い人にとってはSchemeのイディオムは
意味不明なのが多いから、彼らが「メンテ不可能」なのはしょうがない。
知らない人になにいっても無駄。

CやC++でもある種の書き方は、他の言語しかやらない人には奇異にみえるだろう。
でも、Cを知ってる人は非常に多いので、気にならないだけ。
269名無しさん@1周年:2000/12/12(火) 18:46
つまりメンテ要員が多いっつーCの価値だな
270SchemerになりたいCer:2000/12/12(火) 19:01
継続ってのサンプルコードを誰か書いてくれませんか?

これ読んでもそれっぽいのが書かれてない、、、
http://www.sci.toyama-u.ac.jp/%7Eiwao/Scheme/r5rsj/html/r5rsj_toc.html
271名無しさん@1周年:2000/12/12(火) 23:35
みんなLISPはすごいすごいって言うけどSchemeはどうなのよ?
これはLISPより良い言語なの?
272名無しさん@1周年:2000/12/13(水) 01:21
Schemeは中途半端な関数型言語だというのは本当ですか?
273名無しさん@1周年:2000/12/13(水) 08:34
うん
274名無しさん@1周年:2000/12/13(水) 10:30
はじめてcontinuationを意識したという点ですごい。
某ぐにゅ〜のひとが進めている点ですごい。

でも、実用性皆無。泥沼の戦場で役に立つのはC++さ。へーい。
275名前ついてますか?:2000/12/13(水) 11:42
でもプロジェクトを泥沼にするのも C/C++ だね
276名無しさん@1周年:2000/12/14(木) 07:01
Cでも continuation は実現できるよ。
277名無しさん@1周年:2000/12/14(木) 07:02
CommonLISP はともかく、Scheme で仕事は勘弁。
278名無しさん@1周年:2000/12/14(木) 11:12
>>275
プロジェクト自体にならないのが lisp.
キレイゴト言えるのは、所詮おあそびだからさ。
いっぺん、はたらいてみろ。情報科の頭でっかちめ。
279こんなのはどうだ>270:2000/12/14(木) 12:01
> (define c1 #f)
> (display (+ 1 (call/cc (lambda (c) (set! c1 c) 2))))
3
> (c1 5)
6
280279:2000/12/14(木) 12:02
あ…display はいらないね
281名前ついてますか?:2000/12/14(木) 12:05
働いた結果いってるんだけどねえ。
メモリ管理もできないバカに C書かせるなよ。
組み込み系だけど GCつけたくなる今日このごろ。

>>276 それって stack全部保存しちゃうってやつ?
そういう実装の schemeも多かった気がするな。
282名無しさん:2000/12/14(木) 12:11
お前はマイナー言語でオダあげてろ。
オゴシちゃんにはそれがお似合いだって。

分かったら無理すんなよ。(稿
283名無しさん:2000/12/14(木) 12:24
ついでにいうとお前他の板でも俺にマトワリついてるだろ(稿
手加減してんのが分かんねえらしいな。
クセーからちかよんな。殺すぞ。
284名無しさん@1周年:2000/12/14(木) 12:51
> それって stack全部保存しちゃうってやつ?
> そういう実装の schemeも多かった気がするな。
継続をきちんと実装しようと思ったらそれ以外に手はないんじゃないっすか?
もっと効率のいい方法があるのかな。
285276:2000/12/14(木) 16:40
>>281
>>284
うん。
#include "setjump.h"
やね。
Scheme とか LISP とか知ってる人と知ってない人では C のコード
が凄く変わることがあって、そういうときに LISP や Scheme を
知らない人は何やってるか全然わからないだろうな。
286名無しさん@1周年:2000/12/14(木) 17:54
ある程度以上のレベルの仕事をするためには、
C で書こうが C++ で書こうが、LISP みたいな基礎教養が無いと
辛いという話ですね。
287名無しさん@1周年:2000/12/14(木) 18:43
>LISP みたいな基礎教養

なんか馬鹿っぽいんですが。
288名前ついてますか?:2000/12/14(木) 19:04
>>284 Cに落とす Scheme処理系だとそうせざるを得ないんだろうな。
一番過激なのは、そもそも stackを使わないで、全部 continuationで実装しちゃう
とか。byte code interpreter系の実装とか (scheme48とかだっけ?)、
あとは schemeじゃないけど SML/NJとか。

>>285 setjmp.hは雰囲気は似てるけど、別物。って
"setjump.h" だから、setjmpとはちがうのかしらん?

>>286 げに。
289名前ついてますか?:2000/12/14(木) 19:11
>>282 おせっかいだから参考文献を挙げておく。っていうか実は別に 282宛て
じゃなくて、少なくともこのスレッドを読んでいる向学心のある nonLisperむけ
だけど。って 282もはいるのかな。まあ、このスレッドに来ただけ偉い。

http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/7bits/saredo
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/curry
ぐらいかな。URLを上にたどって別のも探すぐらいはしてね。

おごちゃんっていえば、超メジャー言語の GNU Cobolはどうなったのかな?
290276:2000/12/14(木) 21:06
> >>285 setjmp.hは雰囲気は似てるけど、別物。って
> "setjump.h" だから、setjmpとはちがうのかしらん?

あい。そです。<setjmp.h> じゃなくて、"setjump.h" なところに
気付いていただけてうれしー。


291名無しさん@1周年:2000/12/15(金) 07:40
関数型言語の推薦図書、なんかあれば教えて下さい。
どなたかよろしくお願いします。
292743:2000/12/15(金) 08:49
293名無しさん@1周年:2000/12/15(金) 09:03
>292
ありがとうございます。
これから勉強していきますので何卒よろしくお願いいたします。
294743:2000/12/15(金) 11:12
ああ, これって LISP スレなんだよな.
>293
最近, 関数型言語と呼ばれているものは LISP とはだいぶ違うよ.
295名無しさん@1周年:2000/12/15(金) 12:34
へ?、そうなの??
296名前ついてますか?:2000/12/15(金) 14:38
>>290 危うくだまされるところであった。

>>295 うむ。Lisp (scheme含む) のような副作用ありまくりの
言語を関数型言語といわれると、Haskellファンとしては萎える。
297名無しさん@1周年:2000/12/15(金) 15:25
プログラマー板っていろんな人がいて面白いね。おれみたいな
"へタレ"システムプログラマから、ここに書き込んでるスペシャリスト
見たいな人まで。いつも参考にさせてもらってます。>all
298743:2000/12/15(金) 15:55
>295
最近, 関数型言語と言えば
  FP, Mirranda, Haskell, ML(SML/NJ, Caml 他)
あたり.
調べ易いのは ML 系.
「変数はいっさい使うことまかりならん!」とか言われるとびっくりするでしょ?
そんな感じ.

>296 >Haskell ファンとしては…
失礼ですが, 友達, 少なくありませんか?
299名無しさん@1周年:2000/12/15(金) 17:01
setjump.h って、A. Jaffer の書いたやつ?
これが使われてる実装って SCM 以外にもあるのですか?
300名前ついてますか?:2000/12/16(土) 04:12
>>298 変数は使っていいけど、代入はまかりならん、では?

Haskellファンってことは、今のところ隠してるので安泰です(w
301名無しさん@1周年:2000/12/17(日) 23:16
このスレ読んでLISPがやってみたくなりました。
なんかお奨めの入門書などありましたら是非教えて下さい。
簡単なヤツが良いです。
302名無しさんといつまでも一緒:2000/12/17(日) 23:29
「リスト遊び―Emacsで学ぶLispの世界」
http://www.amazon.co.jp/exec/obidos/ASIN/4756134424/
303age:2000/12/21(木) 11:28
>>276
Cでオブジェクト指向できる、って叫んでる馬鹿とたいしてかわらん。
304名無しさん@Haskell.org:2000/12/21(木) 21:56
>>300
束縛変数はいいけど、自由変数はまかりならん、では?
305301:2000/12/22(金) 00:56
>>302
亀レスでスマソ
情報ありがとう。cbook で早速購入してしまった・・・
良い時代になったモノだ!
306名無しさん@1周年:2000/12/23(土) 13:49
LISP好きな先生のページです。

JavaとLispのWebエンジン、どっちが強い?
http://www.graco.c.u-tokyo.ac.jp/~kamina/lisp/wserver.html
LISPは死んだのか
http://www.graco.c.u-tokyo.ac.jp/~kamina/lisp/lisp_is_alive.html

LISPの処理速度
http://www.graco.c.u-tokyo.ac.jp/~kamina/lisp/bench.html
307名無しさん@1周年:2000/12/23(土) 17:52
>>306
おいおい、LISPの速度のところのフィボナッチ数列
のコードの行数比較は不当だろ。
LISPは関数本体だけのくせにC++とJavaは
標準出力などの部分も入れている。
平気でこんな不当なことやってるページなんか
信用できるか。
308名無しさん@1周年:2000/12/23(土) 18:27
>>307
プログラマは行数多いほうがうれしいくせに。
309名無しさん@1周年:2000/12/23(土) 19:03
LISPは書かなくても出力するから。
310名無しさん@1周年:2000/12/24(日) 00:35
>307
309の言う通り。
書いた事ないんだね。
311名無しさん@1周年:2000/12/24(日) 00:52
http://www.jsdlab.co.jp/~kamei/

↑使うのに、多少必要。
Emacs Lispじゃないから。
312名無しさん@1周年:2000/12/24(日) 01:06
>>308-309
ハァ?ちゃんとあのページのソース読んだ?
313名無しさん@1周年:2000/12/24(日) 13:03
>>307
クレームがあるのならe-mailで送ってみるとか。
相手は学者なのだから論戦に応じてくれるでしょう。
その結果を報告して欲しいな。
314名無しさん@1周年:2000/12/27(水) 21:37
結局、クレームは行数の部分だけなのね。
なんだかなぁ。
315名無しさん@1周年:2000/12/27(水) 22:41
>>314
あのなぁ。どこにもクレームがつかないのが普通だろ。
316名無しさん@1周年:2000/12/27(水) 22:42
この場合クレームってより明らかな不正だしな。
317名無しさん@1周年:2000/12/27(水) 23:49
>>316
ゆってることがわからん。
318名無しさん@1周年:2000/12/28(木) 00:20
>>317
だからあのサイトに誰が見たって明らかな不正があることが
指摘されたってこと。
319名無しさん@1周年:2000/12/28(木) 13:39
フィボナッチのC++コードに関しては、なぜ再起で呼ばなければならない
のかが分からん。
for使えばもっと速いはず。
この結果が物語ってるのは再起呼び出しはLispのほうが得意ってことでしょ。
320名前ついてますか?:2000/12/28(木) 17:38
まあ、あの例は極端な例だし、行数の比較だって意味ないけど。
>>319 逆に言うと、なんで数学では再帰で定義されているものを
わざわざ繰り返しに直して書かなきゃ行けないの?
algolithmを素直に書いても早い (こともある) ってのがいえなくもない。

# っていうか、こんな microbenchmarkでごちゃごちゃいったってしょうがなくて、
# 案外はやいじゃん、って思わせたいだけでしょ。
# 本当は保守とか prototypingまで含めた生産性で比較しなくちゃ...
321名無しさん@1周年:2000/12/28(木) 21:51
>>320
再帰で定義されてるわけではないぞ。帰納的に定義されているんだ。
どっちかって言うとF1から順番に計算していくって感じだから
for使うほうが自然だと思う。
ってこれは計算するときのアルゴリズムの話で、LISPがすごいのは
アルゴリズムを書かなくても関数の定義を書いておけば勝手に計算
してくれるところ。
322名無しさん@1周年:2000/12/28(木) 22:33
>>320
そこまで言うならさ、なんでLISPはprototypingが容易なわけ?

あと、あの読みにくさは保守が容易だとはとても思えん。

>>321
>アルゴリズムを書かなくても関数の定義を書いておけば勝手に計算
>してくれるところ。

そんなのどの言語でも当たり前だろ?ていうか、関数の定義を書くって
ことがアルゴリズムの記述と同一では?
323名無しさん@1周年:2000/12/28(木) 22:42
> LISP好きな先生のページです。
おいおい M1 の学生って書いてあるぞ…それともバカにするつもりで「先生」って呼んでるの?
324名無しさん@1周年:2000/12/28(木) 22:47
院生
325名前ついてますか?:2000/12/28(木) 22:52
>>321 再帰と帰納って、この文脈じゃ同じ意味だと思うぞ。
たとえば岩波国語辞典の「回帰」参照。
それに ackermann関数だって帰納的定義だけど、forで実装するの
が自然だと思う?
それに Lispだって algorithmはかかなきゃいかんよ。
そんな魔法の言語はまだないって (Prologは近いけど..)。

>>322 Cよりはね。すぐ coreを吐く言語で prototypingなんて
やりたくない :-)
それに数学的定義と algorithmは別でしょ。
sortの数学的定義と quicksort、heapsort、mergesortとかの
algorithmって同じだとおもう?
って、これはやっぱり 320の発言が悪いのか。
326名無しさん@1周年:2000/12/28(木) 23:02
>>325
coreを吐かないからプロタイピングがしやすいの?それだけ?
327名前ついてますか?:2000/12/28(木) 23:49
>>326
> coreを吐かないからプロタイピングがしやすいの?
はい。
> それだけ?
いいえ。

参考になりましたか?

328名無しさん@1周年:2000/12/29(金) 00:00
>>327
なるわけねーだろ。逝って良し。
LISP使いって結局何も説明できない馬鹿ばっか。
329名無しさん@1周年:2000/12/29(金) 00:33
>>328

つーか、LisperとかSchemerから見ると、他のプログラマーって間抜けばっかでいちいち説明する気も起きないんだよね。
330名無しさん@1周年:2000/12/29(金) 01:11
>>329
またこのパターンの信者が現れたよ。
LISPは宗教と一緒だな。
331名無しさん@1周年:2000/12/29(金) 02:55
あおりにいちいち反応するなよ。
332名前ついてますか?:2000/12/29(金) 04:33
>>328 やっぱりねえ。
anti-Lisperは結局質問もできない馬鹿ばっか。

#というのは帰納法の間違った使い方です。
333名無しさん@1周年:2000/12/29(金) 14:29
>>332
自分が質問に答えてないのにそれはないでしょ。
334名前ついてますか?:2000/12/29(金) 15:20
>>333 326の質問に対しては、端的に必要十分な答えをしてるんだけどねえ(w
335名前ついてますか?:2000/12/29(金) 15:37
ああ、あげちゃった。のでお詫び代わりに Lispが prototypingに向く
理由をつらつら書いて見ると。
・データ構造が柔軟で変更しやすい
protyping中はデータ構造なんて頻繁に変わるもの
・データ構造がふつうリストで、単純で覗きやすい
encapsulateとは反するけど、prototypingではこっちが重要
・構文を強力なマクロで拡張しやすい
・資源管理にルーズでいい
・common lispだと強力な libraryがある
336名無しさん@1周年:2000/12/30(土) 01:08
>>335
>・データ構造が柔軟で変更しやすい
なんというか、C++のSTLと同じ特徴かな。

>・データ構造がふつうリストで、単純で覗きやすい
他の言語でもリストは使える。覗き易いとなぜ良いのか意味不明。

>・構文を強力なマクロで拡張しやすい
構文いじったら読みにくいでしょう。

>・資源管理にルーズでいい
資源?管理がルーズ?意味不明。

>・common lispだと強力な libraryがある
他の言語にも強力なlibraryはあるね。無い言語の方が珍しい。
337名無しさん@1周年:2000/12/30(土) 01:12
>>335
>・データ構造が柔軟で変更しやすい
なんというか、C++のSTLと同じ特徴かな。

>・データ構造がふつうリストで、単純で覗きやすい
他の言語でもリストは当たり前のように使える。
覗き易いとは、勝手に内部実装を外部からいじれるという
意味なら、なぜそれが良いのか意味不明。

>・構文を強力なマクロで拡張しやすい
構文いじったら読みにくいでしょう。

>・資源管理にルーズでいい
資源とは?管理がルーズとは?意味不明。

>・common lispだと強力な libraryがある
他の言語にも、有名な言語ならほとんどに強力なlibraryがあるね。
338名無しさん@1周年:2000/12/30(土) 01:13
多重カキコすまん。
後者の方が推敲されてます。
339名前ついてますか?:2000/12/30(土) 12:41
>>337 prototypingって文脈に注意してね。

>>>・データ構造が柔軟で変更しやすい
>なんというか、C++のSTLと同じ特徴かな。
多分ちがう。まず強い型を目指している点で。
prototypingに強い型はあしでまといなことが多いのです。
関数の型宣言とかにかかずりあってるのが面倒だから。
Javaで Prototypingしたことあるけど、結構面倒だった。
Haskell、MLみたいに型宣言なしでも推論してくれるならいいのかも。

>覗き易いとは、勝手に内部実装を外部からいじれるという
>意味なら、なぜそれが良いのか意味不明。
だってアクセスメソッドをいちいち作るの面倒でしょ?
各モジュールごとにいじりたいデータなんて、刻一刻と変わるんだから
それにあわせて関数を新たに作るなんて脳力の無駄。

あと debug printがとりやすいとか。使いなれた Listのアクセス関数が
使えるし。

>構文いじったら読みにくいでしょう。
読みにくくても、その場で簡潔に意味がとおればいいのです。
人間の中期記憶の容量は限られてるのだからマクロを使ってチャンク数を
減らすのは重要。
例えばデータの初期化とか。ほとんど同じ初期値が並んでいるのを
キーボードマクロでやるか、言語のマクロでやるかの違い。
例外処理とかもそのくちかな?

>資源とは?管理がルーズとは?意味不明。
端的にいえばメモリ管理。配列の上限とか悩まなくてもいいし。

>>・common lispだと強力な libraryがある
>他の言語にも、有名な言語ならほとんどに強力なlibraryがあるね。
うむ、これはそうでしょうね。
でも Cなんかは満足な標準 container libraryもない。
340名無しさん@1周年:2000/12/30(土) 12:58
通りすがりのものですが
・デバッガの中でもコードの修正ができ、修正したコードで継続できる
も追加しといてください。
341名無しさん@1周年:2000/12/30(土) 15:15
LISPには愛があるんです。
それが心に触れるんです。
342337:2000/12/30(土) 19:01
>>339
>多分ちがう。まず強い型を目指している点で。
>prototypingに強い型はあしでまといなことが多いのです。
STLでは多様な型、構造に同じ関数(アルゴリズム)が適用できる。
似てるような気がする。
つまりこの特徴はC++のテンプレートと同じことでは?

>だってアクセスメソッドをいちいち作るの面倒でしょ?
>各モジュールごとにいじりたいデータなんて、刻一刻と変わるんだから
>それにあわせて関数を新たに作るなんて脳力の無駄。
はい?
データ構造が変わったら、内部からいじろうが外部からいじろうが、
それに合わせてコードを変更しなくてはいけないのは一緒では?
それともいつもリストを使えば良いという話なら、
他の言語のでもいつもリスト使ってれば良いだけの話でしょう?
カプセル化されていれば変更はコード全般にわたらず、
圧倒的に少なくて済む。

>読みにくくても、その場で簡潔に意味がとおればいいのです。
なるほどね・・・

>端的にいえばメモリ管理。配列の上限とか悩まなくてもいいし。
リスト使ってればどの言語でもそう。
例えばC++のSTLでもそう。
だから配列の上限などは特にLISPが優れてる点じゃないでしょう?
あと、GCは確かに便利だけれど。

>でも Cなんかは満足な標準 container libraryもない。
標準でないものを使えば良いのでは。
343名無しさん@1周年:2000/12/30(土) 20:35
まあ、使ってみてよとしか言えないな、この辺は。
344名無しさん@1周年:2000/12/30(土) 22:00
STLのリストコンテナでは
(a () (b (c d)))
みたいないい加減な構造を逆立ちしても扱えない。
どうせ持ち出すならpythonあたりにすればいいんでないの。
345名無しさん@1周年:2000/12/30(土) 23:47
大体 コンパイルのいる C++ と lisp を比べちゃいかんよ。
C++ だとまずコンパイル通すだけで結構な手間(タイプ量)でしょ。

動かしてみて、ちょっといじって、
また動かしてみるってのがプロトタイピングだけど、
C++ だとちょっといじる、のところでまたコンパイル
通すのにてこづったりしてなえる。

というわけで、lisp がプロトタイピングに適してるかはさておき、
C++ は圧倒的に不向き。(その分パフォーマンスは良いんだから文句無いけど)
346名無しさん@1周年:2000/12/31(日) 00:34
>>344
余裕で扱えるだろ。
347344:2000/12/31(日) 02:39
>>346
そうけ?おれあほなのでわからん。
ちょっとソースかいてみてくれる?
348名無しさん@1周年:2000/12/31(日) 02:50
346じゃないが、フツーにC++らしく多態使うか、

struct elem {
 enum {list,symbol} elem_type;
 typdef std::list<elem*> elem_list;

 elem_type type;
 union {
  elem_list* list;
  int symbol;
};
};

てなとこじゃないの。

まあ、そもそもそんないいかげんな構造を必要とすることまずないけどな。
lispでプロトタイピングするにしても、裸のまま扱ったら混乱するから、
アクセサ用意するだろ、普通。そんなんだったら型付きの構造体の方が
使い勝手いいぞ。
349名無しさん@1周年:2000/12/31(日) 03:10
>345

なるほど そー言う意見もあるのか
実行時でしかバグ捕まえられないLISPは使えん
コンパイル時でかなりのミス見つけてくれる
C++はすげえ便利って思ってた。
ガーベージコレクションだって余計なお世話じゃ
変なときに勝手に変なことやってただでさえ遅い
インタプリタのくせにって思ってた
Cはすげえや、自分でメモリが管理できるぞって(笑)
350名無しさん@1周年:2000/12/31(日) 03:12
Lispが褒められてる特長って、PerlやPythonやRubyに似てる。
351名無しさん@1周年:2000/12/31(日) 03:16
>345
コンパイルはファイルを細切れに分ければ、短くて済むぞ。
352344:2000/12/31(日) 03:43
>>348
ありがとう。
でも、それだとSTLのリストコンテナ使う意味が正直皆無な気がする。
別に下みたいのでいいし、かわらんでしょ?

struct cell {
  enum elem_type { ATOM, LINK };
  elem_type head_t, tail_t;
  union {
    cell *link;
    int *atom;
  } head, tail;
};

ああいういい加減な例が必要になることが実際に無いであろうことは
まあ同意。ただ、やっぱりこれを「余裕で」とは正直言えないと思う。
はっきり言ってめんどうくさい。
353名無しさん@1周年:2000/12/31(日) 03:59
>>352
もちろんはじめはそう思ったが、
それじゃlispインタプリタ作るのと一緒なのでわざわざSTL使った。
余裕かどうかはねー、それまでにGCクラスとかRCポインタクラス
を用意しているかどうかによるね。
354名無しさん@1周年:2000/12/31(日) 04:03
>>352
STLならいろいろとチューニングされてるし、もとから
アクセス手段が用意されてるし、何かと便利だろ。
一旦作れば余裕だろ。
355名無しさん@1周年:2000/12/31(日) 15:49
>>345
おれ両方使うけど、下地を用意すれば用意するほど、
C++のプロトタイピング力はあがってくるよ。
もちろんそれはどの言語でも言えることだけど、
今のところtemplateが有効に機能するC++(+STL)の優位は
覆しがたい。
全く不向き、っていうのは知らんだけだと思う。

350が言ってるように、lispが誉められる特徴って
いまやlispだけのものじゃなくなってるんだよね。
気をつけないと時代おくれになるよ。

もちろん、歴史的にははlispから来てるものがすくなくないから、
歴史的な価値は高いんだけど。
STLの関数オブジェクトだって元をただせばlispのclosure
だろうからね。ソレより前はおれ知らんけど。

>>354
なんかあまり説明になってないと思うが。
356名無しさん@1周年:2001/01/01(月) 10:18
>>355
じゃぁ、LISPもC++(+STL)も生産性は変わらないって事?
357名無しさん@1周年:2001/01/02(火) 00:43
Schemeの継続ってgotoに似てるように見えるけど、
なんで、こんな仕様を入れたの?
358名無しさん@1周年:2001/01/02(火) 02:23
いやgotoとはかなり違うものだと思うけど。
359名無しさん@1周年:2001/01/02(火) 03:27
>>358
(call/cc (lamda(x) (set! a x)))
:
(a #t)



a:
:
goto a:
はどう違うの?
360名前ついてますか?:2001/01/02(火) 22:21
>>355 うむ、実は C++は Toy Programしか作ったことがないので純粋に疑問。
STLが優位ってのは、強い型をつけることがいいってこと?
それとも豊富な methodがあるのが Libraryとして便利ってことかしらん。

あと、Lisp以外の言語がもつ Lispっぽい特性ってのも確かにあるけどねえ。
Lispですでにできる事に、人口に膾炙する構文つけただけって気も。
そのために script言語間の構文の差異を区別するだけで疲れる。
それなら Lispのなにも考えない構文のほうが好きです。
361名前ついてますか?:2001/01/02(火) 22:24
>>359 continuationは goto *にも* 使える。
他にも coroutineとか setjmp風(あ、これも広義の goto?) にも使える。
362名無しさん@1周年:2001/01/02(火) 23:28
つまりgoto(PCの変更)の高度な抽象化という事で良いのか?
363名無しさん@1周年:2001/01/03(水) 00:03
>>362
「高度な抽象化」がつくとgotoの欠点がなくなるのか?
364名無しさん@1周年:2001/01/03(水) 06:46
gotoの欠点って何だっけ?
365名無しさん@1周年:2001/01/03(水) 06:58
>>364
後藤さんへの差別
366名前ついてますか?:2001/01/03(水) 12:20
>>363 欠点は減らないけど、応用が広がる。
っていうか、call/ccはあくまで primitiveでその上に
例外処理とか multithreadとか皮をかぶせて使ってね、て趣旨だと思う。
call/cc使いまくりの人のコードは、なれるまで見にくかった...
367名無しさん@1周年:2001/01/03(水) 14:10
あと、Scheme(R5RS)の設計思想ってのは、R5RS序文にもあるように
「プログラミング言語の機能は多けりゃいいってもんじゃない、
むしろ最低限の機能だけを提供して、その汎用性をできるだけ
高めることができるような言語仕様にするべきだ」
というものだからね。call/cc はまさにこの考え方を反映していると
思う。これの働きを知ったときは、設計者の頭の良さにうなった。
368名無しさん@1周年:2001/01/04(木) 00:34
でも、なんでも機能が少なけりゃいいってもんでもないでしょ。
call/cc一本で済ませようとせずに、素直に例外処
理の命令ととスレッド機能の命令2つともつけりゃいいのに。
369Larry Wall :2001/01/04(木) 03:34
There's more than one way to do it!
370まつもと:2001/01/04(木) 03:36
>>369
激しく同意。
371逝って良し!>:2001/01/04(木) 05:00
369=370
372369=370:2001/01/04(木) 05:53
>>371
369=370なんて誰もが予想できることだろ。
わざわざ指摘することかよ。(ワラ

Schemeの設計思想はPerl、Rubyの考え方と対立するようだが、
双方はどう考えてるのか気になるところだね。
373藁タ:2001/01/04(木) 12:01
374James Gosling:2001/01/04(木) 15:09
>>369 I give you KISS - Keep it simple and stupid.
375名無しさん@1周年:2001/01/04(木) 17:49
>>372
Scheme は審美的に好きなんだが、実際にアプリケーションを
組むときにその設計思想がどれくらい役立つかはたしかに疑問だな。
Scheme で数千行のコードを書いたことがあるけど、タイプ数が
多くてうざいと思うことがよくあった。ただ、うまくつくると
字句的にもアルゴリズム的にも綺麗なので自己満足に浸れる。
プログラミングの本質 (=アルゴリズムを実装すること) そのもの
を楽しむなら、Scheme は覚えやすいし、いい言語だと思う。
376名無しさん@1周年:2001/01/04(木) 18:41
おしごと(おしきせ)プログラミングしかしない人にはLispの良さは分からん。
Lispは試行錯誤のための快適なフィールド。
377名無しさん@1周年:2001/01/06(土) 14:02
LISPが気になっている人って結構多いんだな。400近くのレスがつくところを見ると。
ICOTの失敗で消滅したかと思ってたよ。
378名無しさん@1周年:2001/01/06(土) 15:07
というか、emacsの成功が大きいのでしょう。
Unixやってるやつで、emacsしならい奴はいないだろうし。
emacs使ってるやつで、elispわかるといいなぁっておもったことの
ない奴はいない。
379考える名無しさん:2001/01/06(土) 16:11
逆に言えばemacsがなかったら見向きもされなかったりして(藁
380名無しさん@1周年:2001/01/06(土) 18:37
icot は prolog だろ?
381名無しさん@1周年:2001/01/06(土) 18:40
>There's more than one way to do it!
But there's usually one good way.
382名無しさん@1周年:2001/01/06(土) 22:14
381はしゃれてるつもりか。英語もおかしいぞ。
383名無しさん@1周年:2001/01/06(土) 22:43
381 じゃないけど、どこがおかしい?
384名無しさん@1周年:2001/01/07(日) 12:05
その意味でoneを使うときはtheをつけることが望ましい
385名無しは無慈悲な夜の女王:2001/01/07(日) 22:40
>>378
しかしelispのプログラムって、lispって言っていいのか?
386名無しさん@1周年:2001/01/08(月) 01:09
> 385
ゴスemacsは偽lispだといって、elispは作られたので、逝ってよし
the best でいいとおもふ。usually を but の次に持ってきてな。
あ〜ど〜でもいいけどな〜。
388名無しさん@1周年:2001/01/08(月) 19:08
AllegroServeとかcl-httpとか。使ってる人いる?
389名無しさん@1周年:2001/01/09(火) 01:43
>> 385
ははは。オレも拾って来たelispのパッケージのソースコードを見てみて、lisperの友だちに見せたらひと悶着あるなと思ったことがある。
390名無しさん@1周年:2001/01/09(火) 12:05
>>388 とまべっち
391名無しさん@1周年:2001/01/09(火) 23:19
俺はかつて、某商社系の会社にて今は亡き米国のシンボリックスというLISP
マシンを使ってました。まあ、リスプ使いとしては、化石の部類かな?
今は全く別の仕事をしているけどね。時々、趣味でアレグロを使うことなんかは、
去年まではあったね。
シンボリックスに象徴されていたと思うが、リスプ処理系とそのマシンというのは、
いわば自己満足的なものの典型の1つだと思う。悪いという意味じゃない。
しかしそれだけに、いずれも寿命が短い。今までに存在したリスプの中で、存命
しているものは、スキーム位じゃないの。コモンの方は、あれは昔の物とは違う。
スキームは、1つの古典的な教育言語のお手本として残っているのだと思う。
今みても、いくつか良い点はあるだろう。しかし、あれも過去の遺物じゃないの。
大学関係者が使うのは、彼らには過去の遺物にしがみつく能力しかない人も多いか
らだと思うぜ。
今のコモンはね、あまりにもリスプ本来の良さを失っているもので、既にリスプ
ではなくなったとも言えるかもね。手軽さ、思考実験の道具なんてことありえない。
それでも、大規模なシステムを作れる良さはあると思うけどね。
俺は、もうコモンは嫌いだ。何よりもあれの良くない伝統は、ユーザへの使い易さ
や世の中への普及を真面目にあまり考えてこなかった点じゃないの。変なエリート
意識を感じるぜ。
アルゴリズムの教育用としても、もうそろそろ過去世紀の遺物を捨てて、別の
処理系に変えたらどうだろう。やはり、関数型のMLやHaskel、または
オブジェクト指向型のRuby、Pythonなんかが良いと思うけど?
もう、一からプログラムを作成するなんていう時代じゃないからね。
392名無しさん@1周年:2001/01/10(水) 18:53
↑Common Lispが失ったLispの良さ、とは?
393名無しさん@1周年:2001/01/10(水) 22:03
>>391
>オブジェクト指向型のRuby、Pythonなんかが良いと思うけど?

LISPだってオブジェクト指向じゃん…。
394名無しさん@1周年:2001/01/10(水) 22:05
スキームとかリスプってカタカナでカカナイデ
だったらルビイとかハスケルとかモカタカナデカイテヨ
395名無しさん@1周年:2001/01/10(水) 22:48
ワレワレハウチュウジンダ
396名無しさん@1周年:2001/01/10(水) 23:05
オレハキノウウンコヲモラシタ (ワライ
397名無しさん@1周年:2001/01/11(木) 09:12
>>393
普通はそうは言わないと思うけど……
まあCLOSとかあるけど、391はCommonLisp否定してるし。
398270(SchemerになりたいCer):2001/01/12(金) 15:13
継続のコードみつけました。

(define cc ())

(begin
(display "1\n")
(display "2\n")
(call-with-current-continuation (lambda (arg) (set! cc arg)))
(display "3\n")
(display "4\n"))

(cc #f)

1
2
3
4
3
4
と表示されます。が本当に何がなんだか。。。
与えられた継続を変数ccに代入(これを束縛と言うのですか???)してて
その継続を呼び出すとさっきの所から実行が始まる。
というのはなんとなくわかるのですが、、、、

これが使えるようになったらものすごく視野が広がりそうです。。。
がんばりたい。
399名無しさん@1周年:2001/01/14(日) 16:43
CLIMって、どう?
400名無しさん@1周年:2001/01/16(火) 08:52
いつまでもカッコかいてろよ。
401名無しさん@1周年:2001/01/16(火) 10:16
>>400
お前はマスでもかいて寝てろ. 風呂入ってからな.

402名無しさん@1周年:2001/01/16(火) 16:39
車とパイプ
403名無しさん@1周年:2001/01/16(火) 17:50
CommonLispはLispの良さを失ってる? んなあほな。
プリミティブの関数が多いからって意味なら、
全部自分で作ってもいいわけだし…
404名無しさん@1周年:2001/01/17(水) 07:10
一ついいですか?
CommonLispをこれから勉強するにはあの10年近く前のあの本を読まないとだめですか?
405名無しさん@1周年:2001/01/17(水) 23:23
>>404
あの本って?
オレもLisp使ってみたい。
406名無しさん@1周年:2001/01/19(金) 10:56
GUY STEEL だっけ?
まだあんのかなあ
407名無しさん@1周年:2001/01/20(土) 11:35
GUYさんの本を読んだだけじゃ、Commonを学ぶことはできないよ。
基本だけを知りたいのならば、近代科学社?から翻訳の出ている「これがLispだ」
あたりから始めるのがいいんじゃないの。と言っても,あれだけじゃ何もできない
と思うけどね。Lisp本来の思考実験に使える良い部分は分かると思うぜ。
まあ、Commonを使うことは、反面教師的な意味をあって良いと思う。
大きくて、複雑過ぎるのですよ。CLOS的なオブジェクト指向の機能にしても、過去
の物を拡張しているわけなので、本当のオブジェクト指向じゃないだろう。
まあ、今はやりのJAVAや、ましてや糞言語のC++より優れた部分はあるよ。
俺はもうLISPを使いたくないが、これからプログラムやアルゴリズム的手法を
勉強したい人には、1つのモデルとして知っとくのは良いことだとは思う。
他のものと比較する上でのね。独善性の強い言語であることも分かるだろう。
それとはっきりいって、新しい関数型やオブジェクト指向型言語処理系には未だに
実験段階だなとしか思えない部分が多いからね。
408名無しさん@1周年:2001/01/20(土) 11:43
C++は面白いよ。テンプレートとか。LISPなんかシーラカンスじゃん。
409名無しさん@1周年:2001/01/20(土) 13:15
LISPをシーラカンスなどというな。せめて大腸菌と呼んでくれ。
410名無しさん@1周年:2001/01/20(土) 14:43
CLOSか、、、
10年進んでないな
411名無しさん@1周年:2001/01/20(土) 19:38
CLOSって解説書少ないんだよね。
数少ないのも分かり難いし。
Commonn Lispの入門ならProgramming in Common Lispが結構いいよ。
著者はBrooksだと思った。
412Symbolics:2001/01/21(日) 01:44
ユーザーの少ない言語で実用プログラムはかけない
マスターベーション用だけにしてくれ
413名無しさん@1周年:2001/01/21(日) 01:55
>ユーザーの少ない言語で実用プログラムはかけない
そうかなぁ?いや別にLispがどうとかって言うんじゃなくて。
414名無しさん@1周年:2001/01/21(日) 03:07
スワヒリ語で
「こっちのほうが英語より10%字数が少なくてすむ」
といって書類を作るようなもの。
とりあえずC++かJava、VBくらいにしといてくれ。
言語のことはもういいだろう。
他にやることはいっぱいあるのに。その上に構築するものの
こと考えようよ。
415名無しさん@1周年:2001/01/21(日) 03:39
>414
なんか変な同僚でもいましたか?
俺はプログラムというものの可能性を知るという意味では、
Lispを勉強するのも悪くないと思う。
416名無しさん@1周年:2001/01/21(日) 04:17
決めた!明日ゲイ本買ってくる。(ハァハァじゃないよ)
あの読みにくい訳と格闘する。たまには頭使わないと
ばちあたるし。
417名無しさん@1周年:2001/01/21(日) 05:37
>>416
CMUのAI Repositoryに原書のHTML版があるよ。
あとHarlequinにCommon Lisp HyperSpecつーののHTML版があるよ。
紙の買ってもいいけどこっちも便利だよ。
418名無しさん@1周年:2001/01/21(日) 05:38
>417 サンクス
できればポインタキッボ〜ん!
419名無しさん@1周年:2001/01/21(日) 08:07
      ○    o  。          o  ゜    。    。   。
   。     o      ゜      。         ○  o   ゜
   。 o     ゜         。        ゚        o
         ○    。            o  ゜    。    。
   ○     o      ゜       ○。           o   ゜
 o     ゜          。         ゚        o
      o   ゚   。             ゚   o   ○        。
    o     ゚             o      ゜  。     o   ゜
                ゚    。      ゜    。     ゜
  ○   。     o      ゜      。           o   ゜
   ゜      ゚      ゜   o       。 .           ○
      ○    o  。          o  ゜    。    。
 ゜      ゜     ゚    ○      。        ○       ゜
   。 o     ゜         。        ゚        o
 ○     ゚  。  ゜    。     .         o       o
            o      ○   .    ゚    。 .     ゜      ゚
 o   ゚   。             ゚   o           。       。
             o      o        ゜    ゜      ○
  。     ゜       ゚     o      ○     o  ゚
    ゜    o   ゜   ゜      .  。                ○
゜    ○       ゜      o      o      o   ゜    。
 o ゜        .  ○    ゜          ゜             o
_\  _   ゜         。    。   ゜      o    _  ○ ̄ ̄
  ○ \    o    ゜               。       / /
 ̄ ̄|__ \\ 、     。     ゜     ゚     ○//。__| ̄ ̄ ̄ ̄
∃  |   |  | l l ゜           ゜    。 l l |  |   |○田 田
    |田 | 。| | l      ゜     ゜    。  ゜  l | |  | 田|    o
∃○|   |  | |。  ゜ . .. ... .. ... . ... ...゜ . .. .. ..    l |。|  |   | 田 田
    |田 |  | l‐    .....   ....     .....     -| |  | 田|
∃  |   |○― ....    o      ....   ○ ..... ―  |   | 田 田
   o.... 一      ....     ○    ...  o   ....  ー- | 。
―  ̄   o   ⌒                          ̄ ― -
  ....               ....        ⌒   o  ....      ....
420名無しさん@1周年:2001/01/21(日) 13:48
> 417
GNU emacsが最初に実装された時のelispユーザは1人だったぞ。
実用的なプログラムがかけないのは、おのれがへぼだからじゃ。
421名無しさん@1周年:2001/01/21(日) 14:40
417さん可愛そう。多分↑の417は412だね
422Symbolics:2001/01/21(日) 16:13
あーあ 青臭い厨房多いなあ
LISP1.5からLispマシンLisp、CLOSも相当使ったし、
Lispは良い素性を持ってると思うけど、当時からこの言語は
World Standardにはなれないことがわかってたよ。
美しさ、素性の良さと普及は別物だってことはいまどき2ちゃんねらー
でも知ってるよ。
GNU emacsもユーザがみんなLispを使ってるわけじゃないじゃん。
1の質問に沿って考えてみろよ。
仕事でLisp使ってオマンマ食ってるヤツなんか1%もいないって。目覚ませよ。
オトミ語やサンスクリット語が好きでもかまわないけど 英語できた
ほうがいいんだから。他は趣味の範囲にしとけって。
それでやるのまでダメなんていってないさ。
423名無しさん@1周年:2001/01/21(日) 16:26
>422
まあまあスレノタイトルは柔軟に捉えてもいいじゃないですか。
なにもこれからはLispの時代だなんていってませんよ。
424>422:2001/01/21(日) 16:53
>仕事でLisp使ってオマンマ食ってるヤツなんか1%もいないって。目覚ませよ。

目を覚ますも何も、そんなことは分かっててやってる。
ま、ヨタ話のひとつだな。好きな言語について、ユーザ同士で雑談してるだけだろ。
その空気が読めずに、いちいち噛み付いてくる厨房がいるからおかしくなる。
ちょっと考えれば分かると思うが「Lisp」しか知らないプログラマがいると思うのか?

オマエ「釈迦に説法」って言葉知ってるか?

>あーあ 青臭い厨房多いなあ
その台詞、そっくりオマエに返してやるから2度とちょっかい出すな。
425名無しさん@1周年:2001/01/21(日) 16:58
420、2重の失敗
426名無しさん@1周年:2001/01/21(日) 20:15
>>422
だからCommon Lispが失なったLispの良さって何なのさ?
寝てても年は取れるんだよ、おっさん。
427Symbolics:2001/01/22(月) 02:19

オレCommon LispがLispの良さを失ったなんて言ってないよ?
誰かとお間違え? 全部読んでないけど
ちなみにCommon Lispでも純粋に言語仕様でいえばLisp1.5は
もちろん包含してるから無くしてはないだろ。
まあいかにもLispらしい使い方ではない使い方を提示したということを
その人は非難したのかな。
デブの子に「少なくとも昔のオマエを無くしてはいない。包含して
いる」といって好きになることは無いのと同じかな。あはは
428Greenblatt:2001/01/22(月) 09:01
>>427
デブでわるかったな。
429名無しさん@1周年:2001/01/22(月) 14:09
>>427
すまん、シトちがいだ、おっさん。
ちなみに俺は痩せの貧乳が好きだ。
430427:2001/01/22(月) 15:13
お、同じだな。
今は仲間由紀恵と矢田亜希子かな。
ちなみに今の彼女はかなり美人でスレンダーだが、ちょっと貧乳が
すぎるのが難点かな。いくら貧乳でもな。もう少しあってもいぞ。
431名無しさん@1周年:2001/01/22(月) 15:22
>>430
Lisperは貧乳がお好き?

おれは普通がいいな、手を組んであるいたときに腕にあたるくらい。
432名無しさん@1周年:2001/01/24(水) 01:51
>>431
うむ、同意じゃ
433名無しさん@1周年:2001/01/24(水) 23:14
お、おれも早くLispのコードからSEXを感じ取れるようになりたいです!
434名無しさん@1周年:2001/01/26(金) 02:29
sexp?
435名無しさん@1周年:2001/01/26(金) 09:32
ああ、sexかどうかっていう述語ね。
436名無しさん@1周年:2001/01/29(月) 23:00
LISPの実用例
http://jp.franz.com/base/success_main.html

LISPで飯食える奴が1%と言うのは同意するが、一応、実用プログラムは
組めるよ。かなり大規模のものもね。Allegroって結構速いし。
437Symbolics:2001/01/30(火) 03:38
>>436
うーん、実は最後のスーパーマリオブラザーズ開発システムはちょっと
かかわりがあったんで知ってるんだけど、これはね、システムが
良かったんだ。
Lispだったからよかったというわけじゃないね。
僕も昔はLispの良さに傾倒したものだけど、やっぱり一般化
できなきゃ将来はないでしょう。1が趣味以外で生業とできる
可能性は限りなく低いです
438名無しさん@1周年:2001/02/03(土) 09:59
ぼくの知り合いのlisperは、客にlispでの開発案を断られるたびに
Javaなんかより、ずっと生産性良いのになぁと嘆いていました。
439名無しさん@1周年:2001/02/03(土) 14:11
JavaVMで Lispを簡単に実装できるようにしてくれれば
よかったのに >> Guy Steel
440名無しさん@1周年:2001/02/03(土) 14:54
441名無しさん@1周年:2001/02/09(金) 19:27
Lisp最大の利点はインタプリタが作りやすいことでしょ。
Schemeはそうでもないみたいだけど。
442名無しさん@1周年:2001/02/10(土) 03:49
>441
Schemeも同様に作りやすいと思うけど。
何か問題でも?
むしろ処理系はSchemeの方が多いと思う。
443名無しさん@1周年:2001/02/10(土) 19:33
継続があるからschemeの方が大変だよ。
関数呼び出しをCの関数呼び出しにマップできないから。
まあ、機種非依存でもいいならアセンブラレベルでスタック保存すれば
いいから、そうでもないけど。
444名無しさん@1周年:2001/02/10(土) 21:08
> Lisp最大の利点はインタプリタが作りやすいことでしょ
それが最大の利点ってのはちょっと悲しい。
インタプリタなら Forth とかのほうが楽じゃない?
445名無しさん@1周年:2001/02/11(日) 03:08
Forth に使い道があるのか?>444
それにLISPやScheme以上にマイナーすぎる。
446考える名無しさん:2001/02/11(日) 03:28
>>445
PostScript
LISP、Schemeとは桁違いに世の中にインパクトを与え金をかせいだ。
447名無しさん@1周年:2001/02/11(日) 03:51
へー、Forth はもしかして汎用アセンブラ?>446
448名無しさん@1周年:2001/02/11(日) 04:04
アセンブラよりは抽象度高いでしょ。
でも >>447 のいうような側面も無きにしもあらずかな。
個々の言語特性というよりも、言語仕様のサイズの問題かな。
あとは環境との接続性の良さとか。
アドビのワーノックはポストスクリプト開発時に好き嫌いでは
なく、プロジェクトを分析してForthによる開発を決めたとか。
本人がけして好きだったわけではないとのこと。
冷静なエンジニアというべきだろうね。
当時他にも組みこみシステムなど、幾つか注目された応用が
あったと思うけど、忘れた。自分もしばらく遊んでみたが
やっぱり馴染めなくて飽きた。
スタックマシンの学習にはなった。
・・・ 昨今のPSはもう書きなおされているだろうけど。

「ルーク。フォースだ。フォースを使え」
「いやだ! あんな逆ポーランド記法の言語…」
449名無しさん@1周年:2001/02/11(日) 04:07
ルゥク・・・フォオスを信じるのだ・・・
450〈゚Д゚〉:2001/02/11(日) 19:31
LISP1.5 age
451仕様書無しさん:2001/02/11(日) 20:55
なぜ逆ポーランド記法だと、いやなんでしょうか。
452名無しさん@1周年:2001/02/11(日) 22:02
虐ポーランド紀宝は結合規則とか、優先度が変えられないからでは?
あと、演算子の並びが一目見ただけではわかりずらいとか。
小学校からの教育課程でそれを学習していれば多分違和感無いんだろうね。
中記法が主流なのは優先度を括弧で任意に変えられる事と、演算子自体が区切り子になるから読みやすいんだと思う。
LISP/Schemeも数値演算程度は中記法で書きたいと思ったことありません?
453名無しさん:2001/02/11(日) 22:13
数学の記述方法って教育上弊害あると思うね。
ロジック的に分かりにくいっていうか。
先入観を排除できるならLisp系て案外よさげ。
454451:2001/02/12(月) 12:13
優先度が変えられないと、こまてしまいますねぇ。なるほど。
455452:2001/02/12(月) 16:51
×中記法
○中置記法
だった。ウトゥ
456仕様書無しさん:2001/02/12(月) 16:57
>>452
結合規則は変えられるだろ。(1+2)*3 は 1 2 + 3 * だし、
1+(2*3) は 1 2 3 * + じゃん。たしかカッコを使わないと
結合規則が一意に定まらないのは中置記法だけのはずだよ。
前置でも後置でも構文木は一意に決定できるはずだ。
たしか計算機科学の教科書にそう書いてあった。
457452:2001/02/12(月) 17:11
そだね。>456
最近あんまそういった本見てないんで・・・
ま、人間の脳内スタックには限界があるということで。
458仕様書無しさん:2001/02/12(月) 17:38
人間の短期記憶セルのネストは6重までです。
世界中の言語で、7重以上の関係代名詞を使うものはありません。
理解できないからです。
459仕様書無しさん:2001/02/13(火) 12:55
同じ処理系が小さい言語でも、
Forth は家電の組み込みシステム等で実績があるらしいが、
Lisp は聞いたことがない。なぜ?
460仕様書無しさん:2001/02/13(火) 12:58
自意識を持つとこわいから
461仕様書無しさん:2001/02/14(水) 00:21
call/cc理解不能な奴と、lambda式とclosureの区別つかない奴の書き込み禁止

萩谷先生はCが好きだとあったな。もちろん、自卑の念も込めてだろうが。
462仕様書無しさん:2001/02/14(水) 02:16
区別も何もまったく別物だろ。区別をつけるとか言っているのが痛い。
463仕様書無しさん:2001/02/14(水) 03:44
もう忘れちゃったなあ…
lambdaとclosure
call/cc も。。
やっぱり日々使ってないと薄まっちゃうね。
ちょっと一行で本質を解説してよ。
464仕様書無しさん:2001/02/14(水) 03:54
忘れるとかそういう性質のものでないと思うが。
解説を読んでそれで終わり。
465d?l?????:2001/02/14(水) 20:59
lambda: プログラムテキスト
closure: lambdaと環境
環境: 「変数とそれに束縛されている値のペア」の列
continuation: スタックのコピー

「lambda式が扱えて便利」なんてコメントから、
これくらいの区別がついてないと判断。
普通だったら、「closureがfirst classだから便利」とか言うだろ。
lambda式なんて、Cだって関数へのポインタあるじゃん。
その他考えられるとしたら、lambda式をevalに使える位だろ。
evalなんて、Schemeの言語仕様にもないような関数つかわねって。

call/ccなんて、普通、大域環境に脱出するときしかつかわんだろ。
continuation calling styleなんて、コンパイルするときの理論だっつの。
466仕様書無しさん:2001/02/14(水) 21:15
>>465
それが R5RS では eval が入っちゃったんよ〜。
467仕様書無しさん:2001/02/14(水) 21:17
lambda式が便利なのは、インラインで書けるからってのもあるでしょ。
それはfirst class objectだからじゃなくてレキシカルな問題じゃん。
君とんがりすぎ。何でそんなことでいい気になってるのか
よくわからないな。
468仕様書無しさん:2001/02/14(水) 21:17
しかも必須手続き。
469仕様書無しさん:2001/02/14(水) 21:18
それにcall/ccは中断と復帰とかスレッドとかにも使うでしょ。
思い込み激しすぎるのとちがう?
470仕様書無しさん:2001/02/14(水) 21:27
『continuationがコンパイルする時の理論』で
『環境:「変数とそれに束縛されている値のペア」の列』ってのもずるいよね。
471仕様書無しさん:2001/02/15(木) 00:20
SchemeやLISPを理解/習得するには、自分で処理系を作ってみるのが最も早いと思います。
他の言語よりはずっと簡単だし。
わたしはこの方法で理解しました。
作ってみると、なあんだ、って事が多かったです。
みなさんはどうですか?
472仕様書無しさん:2001/02/15(木) 01:23
>>468 あれには目を疑ったね... エバらないのが schemeの
いいとこだったのに。
473名無しさん@1周年:2001/02/15(木) 11:30
CLIMって使ってる?
474仕様書無しさん:2001/03/11(日) 03:31
アンチ副作用。age
475仕様書無しさん:2001/03/18(日) 15:49
age
476仕様書無しさん:2001/03/21(水) 09:45
Javaで書いたLispがあるんだけど、希望があれば
公開するよ。(今は直リンクが切れている)
もう5年前なんで、実装が古いけど、一緒にやって
くれる人がいるなら焼き直そうかなと。
thread使えるよ。
477仕様書無しさん:2001/03/21(水) 10:36
技術板から移動してきました。
LISP(Scheme)でgotoはどうやるんですか?
(Cでいう)whileもほしいんですけど。breakやreturnも。
Schemeだとcall/ccを使用する手がある様ですが、きちんと最適化してくれない処理系(自作物とか)だと、とても遅そうです。
あと再帰にすると括弧のネストが増えるのがいやなんですけど、対策はありますか?
478仕様書無しさん:2001/03/21(水) 13:54
>>477
CommonLispなら一通りあるよ。
479仕様書無しさん:2001/03/21(水) 14:28
> Javaで書いたLispがあるんだけど
Kawa よりイイのか?
480仕様書無しさん:2001/03/21(水) 17:49
>>479
これほどしっかりはしてないな。
こんなのは書ける。
(defun t-hanoi () (progn (thread "tag" '(tower-of-hanoi 11))
(thread "tag" '(tower-of-hanoi 11))
(thread "tag" '(tower-of-hanoi 11))))
481>478:2001/03/21(水) 23:47
ありました。gotoはLISPだとgoのことですか。
(block ... [label] ... (go label) ... [label] ...)
(while test compound)
なんかこの辺の構文ってLISP的に卑怯な感じがするのはきのせいでしょうか。
・・まあ無いと不便だし、しかたがないのかな。
#それにしても(開きはいいが、)閉じ括弧数えて書くのウザイくなってきた・・
482仕様書無しさん:2001/03/22(木) 17:35
もう既に誰かが書いているかも知れないが、アメリカでは意外と使われている。
理由は簡単で、MITやCMUなんかがバンバンLISPプログラマを育てていて
そいつらが社会に出てもLISPを使い続けるからだ。
プレステのクラッシュバンデグーはMIT Media Lab出身の若手がCommon LISP上
で構築したゲーム・オリエンテド・オブジェクト・ランゲージなんていうのを
わざわざ作ってプログラミングしている。
はっきり言おう。日本は駄目だ。アメリカにいけ。
483仕様書無しさん:2001/03/22(木) 22:29
>478
whileは
(loop
 (when 終了条件
    (return 戻り値))
 フォーム…
)
でいいのでは。
484483:2001/03/22(木) 22:29
>478

>477
の間違いでした。
485483:2001/03/22(木) 22:31
補足:
確か、emacs-lispにはwhileがありましたが、
CommonLispには無かったような気がしたので…
486仕様書無しさん:2001/03/22(木) 22:40
便乗。
elisp で、while から抜けるのって return と throw のどっち使った方がいいのか
な?
elisp の場合は cl (common lisp なマクロ群)をあんまし使わない方がいいみたい
な風潮があるからやっぱ throw ?
ちゃんと lisp 習ったりしてないからどっちがいいのか教えて欲しいです。
487486:2001/03/22(木) 22:42
while から抜けるってのは途中で抜けるって事です。
言葉足らずでごめん。
488仕様書無しさん:2001/03/23(金) 02:54
returnやbreak ってどの階層まで抜けれるのかな?
関数の外?ラムダ式の外?ブロックの外?
適用範囲を指定する構文があるのかも。
↓こんな感じ?
;(return label [resut])という書式でlabelのblockの制御を抜ける。
;この場合blockの戻値はparamになる
(define (func param)
 (display
  (block bottom
   (return bottom param)
  ))(newline)
)
;=>paramが表示される

いま使える処理系持ってないから確認できない・・・
489仕様書無しさん:2001/04/06(金) 20:38
age
490仕様書無しさん:2001/04/18(水) 01:27
ge
491仕様書無しさん:2001/04/18(水) 16:16
なんで quote の話がでないんだ?
良し悪しは別にしてあれができる言語はLisp系だけだぞ。
492仕様書無しさん:2001/04/20(金) 05:24
quoteの評価の規則がいまいちわかりません。
'a
=>a
((lambda (x) x) 'a)
=>a
はいいとして、
((lambda (x) ((lambda (y) y) x)) 'a)
=>a
になるのはなぜでしょう?
x,yで2回評価されると思ったんですが。
493492:2001/04/20(金) 05:29
あ、
(define b ((lambda (x) x) 'a))
=>b
((lambda (x) x) b)
=>a
になりますね。
うーむ・・
494492:2001/04/20(金) 05:42
やっぱり納得行かない。
493はbにbindするので意味は通るんだけど、
492のはyの評価が終った時点でquote付けられてる様に感じます。
それともyの返却値はx引数に入る時点では評価は行われない?
495仕様書無しさん:2001/04/20(金) 07:28
>>492
a はただのシンボル型の定数(即値)だからでは?
普通ソースコードに a と書くとそれは変数と解釈され
a にバインドされている値を返すことになるけど
そうすると a というシンボル型の定数(即値)を
ソースコードに書く方法がなくなってしまう(リスト
も同じ、但し実数や文字は評価されても自分自身と
同じ値になるからよい)。
それを避けるための方法が quote なのでしょう。
496仕様書無しさん:2001/04/20(金) 13:14
>>495が正しい。
'a は何回評価されても 'a だよ。1 -> 1 と同じ。
quote は関数では無いから。
497仕様書無しさん:2001/04/20(金) 19:16
>>496
補足どうも。
出社前に急いで書いたので後で読み直すと
我ながら結構読みにくい文章になっていました
(というよりいいかげん?)。

>'a は何回評価されても 'a だよ。
この一言に尽きるでしょう。
498492:2001/04/20(金) 20:01
あー、つまり一番外側の評価の段階で
'a
=>a
で固定されて、そのままlambdaに渡ると考えればよいのでしょうか。
(スコープが変化する時にだけ評価されるという意味です)
でもそうすると、
>>497
>>'a は何回評価されても 'a だよ。
>この一言に尽きるでしょう。
これが矛盾してきます。
(quote a)
の評価結果はaですよね?
それで、
((lambda (x) x) 'a)
の時だと、lambdaに渡る前に'aが評価されてaに確定して、
(スコープが変化して、)そのままlambdaやらに渡ると、
現在認識してるんですが・・。
うーん。
499492:2001/04/20(金) 20:06
つまりlabmdaの中ではaは評価されず、
新たにaをbindされた仮引数xがlambdaスコープ中で評価されて、
=>aになると解釈すればいいのかな?
そうすれば矛盾は起らない様な気がします。
500492:2001/04/20(金) 20:12
よって、
((lambda (x) ((lambda (y) y) x)) 'a)
の評価順序は、まず外側のyに設定された引数'aを評価
'a=>(quote a)=>a

lambda仮引数yにaをbindし、
yを評価=>a

lambda仮引数xにaをbindし、
xを評価=>a

という解釈に現在至ってます・・
うぬぬ
501:2001/04/20(金) 20:33
・((lambda (x) x) a)

x 内の x を a に置き換える。つまり、 a。
a を評価すると、変数aにバインドされてる値を返す。

・ ((lambda (x) x) 'a)

x 内の x を 'a に置き換える。つまり、 'a。
'a は何度評価しようとも 'a のまま変わらず。

・((lambda (x) ((lambda (y) y) x)) 'a)

まず ((lambda (y) y) x)。y 内の y を x に置き換える。つまり x。
するとコレは ((lambda (x) x) 'a) となる。あとは上の例と同様で、結果は 'a。

---------------------------------

> (quote a)
> の評価結果はaですよね?

そうではないですね。>>495氏の説明の通り。
↓納得いかなければこんなのでも試してみるよろし。
(setq a 123)
(+ (quote a) 1)
502仕様書無しさん:2001/04/20(金) 20:37
>'a は何回評価されても 'a だよ。
これは嘘でしょう。
'a が1回評価されればそれは a というシンボルになり、もう1回評価されれば a に束縛されている値になる (a になにか束縛されていればの話だが)。
>>492 の S式では 'a が評価されているのは一回だけです。
503仕様書無しさん:2001/04/20(金) 20:37
>>492

(quote a) の評価結果の a は普通の定数としての a を表してる。
が、ソースに普通に a と書くと変数名としての a を表すので、これは
(quote a) が返す a とは別物。

…かな?
504仕様書無しさん:2001/04/20(金) 20:48
なんか、>>501 が混乱の元凶という気がするのだけど。
それから Lisp では評価は適用順序でなされるはずですよ?
あなたの説明では (lambda (x) x) の x に直接 a という
字句を入れている。これは正規順序で、ふつうのLispの
実装ではそうなっていないはずです。
505492:2001/04/20(金) 22:08
みなさんレス有難うございます。
やっぱりスコープ変更の段階で一度評価される様ですね。
グローバルスコープ(quote a)=>a
 仮引数のbind y <- a
 lambda(y)ローカルスコープy=>a
  仮引数のbind x <- a
  lambda(x)ローカルスコープx(y=>a)=>a

>>504
適用順序ってなんでしょうか
本読んだ方がいいかな・・
506492:2001/04/20(金) 22:12
>>501
(setq a 123)
(+ (quote a) 1)
これは「aは数値じゃない」というエラーで失敗しましたが・・。
507仕様書無しさん:2001/04/20(金) 22:49
>>505

スコープは関係無いよ。

(1) 入力した S 式は評価される
(2) lambda 式が評価されるときには、変数に値が bind される
(3) 変数は評価されると bind されている値になる
(4) (quote 式) は評価されると 式 になる

これだけ。
508492:2001/04/20(金) 23:39
>>507
なるほど。
ありがとうございます。
だいぶすっきりしました。
509仕様書無しさん:2001/04/29(日) 15:20
Lisp? LISP? lisp?
どれでもいいの?
510仕様書無しさん:2001/04/29(日) 17:07
>>492
正規順序: (λx. f(x)) ((λy. g(y)) C) ⇒ f((λy. g(y)) C) ⇒ f(g(C))
適用順序: (λx. f(x)) ((λy. g(y)) C) ⇒ (λx. f(x)) g(C) ⇒ f(g(C))
わかるかな?
511492:2001/05/02(水) 03:39
>>510
適用順序の
((λy. g(y)) C) ⇒ g(C) …(1)
は(schemeのlambda〜と同じ表現なので)なんとなく判りますが、
(λx. f(x)) g(C) ⇒ f(g(C))
これがわかりません。(1)のネストと考えたら、
((λx. f(x)) g(C))⇒ f(g(C))
こうじゃないんですか?
正規順序のほうはサッパリでした。
というか式の見方がわかりません。
こういうのはどういう分野の本を参考にすればいいんでしょう。
やっぱり数学の本ですか?
512非決定性名無しさん:2001/05/02(水) 03:42
ハッカーズの愛読者です
513>509:2001/05/02(水) 03:42
ListProcessorなのでL.P.
LisP
514仕様書無しさん:2001/05/03(木) 03:06
515仕様書無しさん:2001/05/19(土) 15:19
このスレッドだけなぜか
かちゅ〜しゃ
で表示されません。なぜ?
516仕様書無しさん:2001/05/19(土) 15:26
>>509 >>513
Lispだろ。
517仕様書無しさん:2001/05/19(土) 15:28
つーか、
「プログラム」板と
「プログラム技術」板
とあるみたいですが、どうなってるんでしょう?
518仕様書無しさん:2001/05/19(土) 15:37
519仕様書無しさん:2001/05/21(月) 20:21
80年代後半にXlispのソースを入手してPC−9801F2で
ボーランドTurboC2.0使ってコンパイルしたら動きました。
そのソースといっしょに付いてきたqa.lspと言うプログラムに非常に興味を
持ちました。なんか言語意識のシミュレーションの基礎研究みたいな内容です。
現在Lispでの言語意識のシミュレーションについて研究しているのですが
Xlispの場合、統計解析の本は共立出版から出ていますが専門外なんです。
UNIXのFranz LispのSIR.lspと言うプログラムが
それに近かったんですが方言があってXlisp上では動きませんでした。
同じような研究されている方居ませんか?情報交換しましょう。
あとLispはBASICみたいな体系的なリファレンスマニュアルも
見あたらないですね。誰かこれだって言う本知りませんか?
520condさん:2001/05/23(水) 16:45
>>519
Common Lisp the Language :
http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html

PS/HTML/DVI等の形式でダウソロードできるみたい、英語。
(共立のbit別冊がおいてない片田舎でも入手できて便利)
521仕様書無しさん:2001/05/24(木) 02:51
>520
ちょっと昔bit別冊の本、古本屋で1200円で手に入れました。
買った当時(なんで買ったのかも謎。)はlispあんまよく
知らなかったけど、今は結構役に立ってます。(使用言語はschemeですが)
522仕様書無しさん:2001/05/29(火) 23:28
なんで Lisp は Run のことを Evaluate っていうんですか?
評価してボーナスの査定でもしてほしいんですかね。
523仕様書無しさん:2001/05/30(水) 02:13
>>522
理由:
動かしてる訳じゃないから
式を評価した結果や副作用でアプリが動いているように見えるだけ
つまり脳内の錯覚
524519:2001/05/31(木) 19:11
>condさん
貴重な情報感謝いたします。
ありがとうございました。
525仕様書無しさん:2001/05/31(木) 19:35
526仕様書無しさん:2001/06/02(土) 22:45
Meadow で
(plus 2 2)
C-x C-e
とやったら
Symbol's function definition is void: plus
とエラーメッセージが出ました。

解説本にはできるって書いてあるのにウソツキ。

http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp_2.html#SEC13
527Lisp初心者:2001/06/03(日) 04:45
Xlisp-statをDLしました
取りこんだソースリストをBASICのLISTコマンドみたいに
Xlisp−stat上でリスティングする方法はありますか?
初歩的に質問ですいません
528仕様書無しさん:2001/06/04(月) 20:57
>>526
> Meadow で
> (plus 2 2)
> C-x C-e
> とやったら
> Symbol's function definition is void: plus
> とエラーメッセージが出ました。
>
> 解説本にはできるって書いてあるのにウソツキ。
>
> http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp_2.html#SEC13
>
このマニュアルのどこにそんなことが書いてあるんだよ。
言語の勉強する前に日本語勉強しろや。
529仕様書無しさん:2001/06/04(月) 21:24
「Lisp では、ある命令セットには幾つかの名前が付随している。
例えば、数を加えろという計算機の命令には、+ というシンボルと同様、plus というシンボルも付随させることが出来る。」

↑って書いてあるじゃんか!
泣くぞコルァ
530アトムさん:2001/06/05(火) 08:58
>>529

「ことができる」というのは (defun plus (x y) (+ x y))
を評価すれば (plus 1 2) が使えるということで
演算子記号は特別扱いされない という内容と思われ。

ちなみに + は引数を3個以上とれるので上の関数は
手抜きだ。
531仕様書無しさん:2001/06/05(火) 21:48
(let ((hiroko 'kitui)
(naoko 'gabagaba))
(message "ai jin no manko ha %s sosite nyo-bo no manko ha %s" hiroko naoko))
532仕様書無しさん:2001/06/07(木) 15:41
(concat "(" "●" "´" "ー" "`" "●" " )" )

C-u C-x C-e
   ↓
"(●´ー`● )"

533仕様書無しさん:2001/06/07(木) 16:35
(concat "(" "," "," "゚" "Д" "゚" " )" )

C-u C-x C-e
   ↓
"(,,゚Д゚)"
534仕様書無しさん:2001/06/07(木) 20:40
(defun naniwo-tabetai (chara)
"tabetai monowo irero!"
(if (equal chara 'stake)
(message "stake ha umai!")
(message "son na mon ga kueru ka!")))

C-x C-e → naniwo-tabetai

(naniwo-tabetai 'stake)

C-u C-x C-e
    ↓
"stake ha umai!"


535仕様書無しさん:2001/06/16(土) 02:40
>>519
Franz Lispなら、
http://www.aiai.ed.ac.uk/~jeff/franz-for-386.html
にあるよ。
536仕様書無しさん:2001/06/21(木) 22:39
age
537仕様書無しさん:2001/06/22(金) 03:00
XMLはlispなんですか?
538仕様書無しさん:2001/06/24(日) 02:22
中身はよく似ている。Lispもどきとよく言われている。XML
539仕様書無しさん:2001/06/27(水) 19:58
>>529
(+ 1 2 3 4 5 6 7 8 9 10)
(plus 1 2 3 4 5 6 7 8 9 10) ; エラー
(symbol-function '+) ; 計算機の命令
(fset 'plus (symbol-function '+)) ; 付随
(plus 1 2 3 4 5 6 7 8 9 10)
(symbol-function 'plus)

>>530 ちょっと違うね。
540仕様書無しさん:2001/06/28(木) 23:51
>>538
じゃあ、XMLをよく勉強しておけば、LIspの理解も早まるし、逆も真なり、なんですね?
一粒で二度おいしい。
541:2001/06/29(金) 00:02
>>1
実際のシステム構築ではほぼない、です
542仕様書無しさん:2001/06/29(金) 15:04
>>540
Lisp: S式という印字表現を持つ汎用木構造を基本データ型とする言語。
XML: DOMというデータモデルを持つ汎用構造文書。
なので、対応構造が随所にある。
543519:2001/07/14(土) 21:26
>>535さん
Thanx
ソースリストを拾っちゃいました。
Flanz lispをWindowsに移植してみようと思うけど・・
C言語なんて何年もやってないな〜(爆
Cコンパイラー買わなきゃならんな〜(核爆
Allegro DLしたけど巨大で好きになれません。
今時のPCゲームに比べりゃ可愛いもんでしょうか
Franz社からラブレターが来たけどライセンスを認識せず動かなかったので
導入を諦めたと返事を書くつもりです。
Xlisp-statがコンパクトで気に入ってます。フリーだし(これが大きい)
付いてるエディターが小さいプログラムしか書けないみたいですけど
544仕様書無しさん:2001/07/15(日) 07:11
LISPの欠点って何?
545Be名無しさん:2001/07/15(日) 09:57
>>543
Cygwin じゃ駄目なの?

>>544
超マイナーな所。
546仕様書無しさん:2001/07/15(日) 10:32
>>545
つーか、なぜこんなにすばらしい言語なのに、あんまり使われないの?
547Be名無しさん:2001/07/15(日) 11:53
>>545
elisp は結構使われているでしょう?
Oracle の設定ファイルも lisp 風だね。

やはり、メモリ食い、遅い、非効率、専用ハードが必要、ガページで止まる、
構文が独特、コンパイラが無かった、実践的な解説書が無い、etc、、、

のせいかな? 今じゃ当てはまらない部分も多いけど、、、

つーか、lisp なんて誰も知らん。
548仕様書無しさん:2001/07/15(日) 11:59
autolispがあるだろう。
549仕様書無しさん:2001/07/15(日) 12:17
AutodeskはOracleと同じ技術料ぼったくり会社なんで
仕事はあるだろうな
内容は退屈だろうけど
550仕様書無しさん:2001/07/15(日) 13:01
>>544
かっこ一つ付け忘れたら動かない事
551仕様書無しさん:2001/07/15(日) 13:30
.NETに対応させれば? >どっかの実装
552仕様書無しさん:2001/07/15(日) 17:17
LISP普及させよう!
553仕様書無しさん :2001/07/15(日) 17:49
Allegro CL ってどうなのよ。
554名無しさん@そうだ選挙にいこう:2001/07/19(木) 20:12
>>553
ダメ!システムが巨大過ぎる!
タダでさえメモリーを食うLispはコンパクトな本体で、出来るだけ
ユーザーエリアを提供すると言った設計思想を根付かせないとダメ!
Allegroはシステム自体をガーベッジコレクションする必要がある。
Xlisp-statで充分!
555仕様書無しさん:2001/07/19(木) 21:53
最近の VB、Java、C++(withSTL) に比べたらカワイイものよ。<メモリー食い
556仕様書無しさん:2001/07/19(木) 22:18
>>554
Xlisp-stat って、コレの事?
http://www.mlb.co.jp/linux/science/xlispstat/
557554@64MBメインメモリーマシンユーザー:2001/07/19(木) 22:25
>>555
実行中に飛んだぞ!画面がぐちゃぐちゃになった
多分ビデオメモリーの住所まで下りたと思われ。。
>>556
そうです。
558仕様書無しさん:2001/07/19(木) 23:27
Allegro CL って買うといくら?
GUI の使える Lisp 処理系って他にありますか?
559仕様書無しさん:2001/07/20(金) 15:29
Xlisp-stat って ALC と比べるものじゃぁ無いと思うけど。
560仕様書無しさん:2001/07/21(土) 00:52
>>558

schemeじゃ駄目? よければ、guileを。
http://www.ping.de/sites/zagadka/guile-gtk/

sawfishで使っているrepにもgtk bindingがある。
http://rep-gtk.sourceforge.net/

GNU Common Lisp(旧Kyoto Common Lisp)もTkのinterfaceを持っている。
http://www.gnu.org/software/gcl/gcl.html
561仕様書無しさん:2001/07/21(土) 06:08
>>559
Xlisp-statは本来AI言語であるLispを統計解析に活用しようと言う
設計思想から生まれているがXlisp-plusの基本機能はそのまま持っているし
本体がコンパクトなのは強みだと思う。
システムが大きいAllegroと比較するも一考。
付いてたエディターがショボイのには倒れたが・・
562無名λ式:2001/07/21(土) 14:01
>>561
> Xlisp-statは本来AI言語であるLispを統計解析に活用しようと言う

もういいかげん「AI言語」というのはやめれ

それはそうとRもいいだべさ。AT&TのS + MITのschemeだべ。
http://www.gnu.org/software/r/R.html
http://WWW.R-project.org
http://cran.r-project.org
563仕様書無しさん:2001/07/21(土) 17:04
>>560
Thanks. でもそれって、UNIX 用ですよね。
Windows で動くのって ACL だけかな?
564仕様書無しさん:2001/07/22(日) 02:43
>>547
>メモリ食い、遅い、非効率、ガページで止まる
この辺は、昔さんざん言われてた事だけど、今は事情が異なるよね。
C/C++/Delphi辺りと比べたら当てはまるけど。

>専用ハードが必要、
これも。lisp専用マシン自体は今でもあるみたいだけど。

>構文が独特
これは、まあしょうがないか・・・。
(でもマクロで他の言語の構文に似せる事はできるみたい。)

>コンパイラが無かった
バイトコード化とか、toCなコンパイラはほとんどの処理系にあります。
結局JavaVMの様に標準化とかはされてないけど。

>実践的な解説書が無い
昔に比べたらだいぶ状況は良くなったと思う。

>etc、、、
他は、なんでしょう
565仕様書無しさん:2001/07/22(日) 02:47
>>558
Schemeなら結構あるみたいですよ。
Guile以外にもDr-Scheme R-Scheme Pocket-Scheme ELT-Schemeなど
566仕様書無しさん:2001/07/22(日) 02:52
ELTじゃなくてELKでした。
あと、STK(Scheme/TK)とか。
567仕様書無しさん:2001/07/22(日) 02:56
厨房なんで Lisp と Scheme の違いがわかりません。
基本的に同じモノと考えていいのかな?
568仕様書無しさん:2001/07/22(日) 03:09
SchemeはLISPの1方言です。>>567
普通のLISPよりもシンプルで直行性のある構文が書けます。
また、末尾再帰構造のループ展開をサポートしています。
なので複雑な繰返し構造が書ける様です。
普通のLISPよりも、MLとかの関数型言語の考え方に近いです。
569仕様書無しさん:2001/07/22(日) 03:24
あとSchemeで特徴的なのはcall-with-current-continuationという、
「継続」というオブジェクトがあります。これを使って、
コルーチンとか例外処理(try/catch/throw/finally)、
脱出処理(break/return/continue)相当が書ける様です。
関数もクロージャという、Schemeオブジェクトの一種なので、
他のオブジェクトと区別無く扱うことができます。
下の様に構文上は、みな同じ書き方ができます。
(f)
fという組み込み関数またはクロージャまたは継続を呼び出す。
570仕様書無しさん:2001/07/22(日) 03:32
>>569
>(f)
構文(syntax)やマクロ、という可能性もある。
まあ、その場合は引数無いと無意味っぽいけど。
571仕様書無しさん :2001/07/22(日) 05:50
お〜ま〜え〜ら〜は
あ〜ほ〜か。

Lisperは偽術者じゃ。ヴォケ。
プログラマや技術者を名のるな。アッポー

逝ってまえ
572仕様書無しさん:2001/07/22(日) 11:39
>>571 は、Lisper 伊東、、、、なんちゃって。(藁
573仕様書無しさん:2001/07/22(日) 11:45
>>572
下らんが、ワラテシモタ
574仕様書無しさん:2001/07/22(日) 23:42
Lisper出て行け!
575仕様書無しさん:2001/07/22(日) 23:47
何故。>>574
576仕様書無しさん:2001/07/23(月) 00:20
>>574
何故に?
Lisp の実用性は置いておいておくとして・・・
言語としては面白いぞ。
577仕様書無しさん:2001/07/23(月) 01:14
括弧が多すぎて、理解できないとか(w
578仕様書無しさん:2001/07/23(月) 12:47
Lispを知らない奴は素人
579仕様書無しさん:2001/07/23(月) 20:13
>>577
つーか、再起処理が理解できないに。ファイナル・アンサー
580仕様書無しさん:2001/07/23(月) 21:14
auto-lisp
581仕様書無しさん:2001/07/23(月) 23:14
再起処理
582579:2001/07/23(月) 23:56
>>581
うげっ! 再帰不能だ、、、氏のう、、、
583仕様書無しさん:2001/07/24(火) 11:22
―――┴┴┴┴┴―――――、
   /.  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ ||       __________
  /.    ∧// ∧ ∧| ||      |||   ||  /
 [/____(゚_//[ ].゚Д゚,,) ||___|||   || <  574を迎えにきました
 ||_. *  _|_| ̄ ̄ ∪|.|.       |ヽ. _||  \__________
 lO|o―o|O゜.|二二 東|.|京精神病院    ||
 | ∈口∋ ̄_l__l⌒l_|_____|_l⌒l_||
   ̄ ̄`ー' ̄   `ー'  `ー'   `ー'
584仕様書無しさん:2001/07/24(火) 11:27
   ―――┴┴┴┴┴―――――、
   /.  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ ||       __________
  /.    ∧// ∧ ∧| ||      |||   ||  /
 [/____(゚_//[ ].゚Д゚,,) ||___|||   || <  571を迎えにきました
 ||_. *  _|_| ̄ ̄ ∪|.|.       |ヽ. _||  \__________
 lO|o―o|O゜.|二二 東|.|京精神病院  ||
 | ∈口∋ ̄_l__l⌒l_|_____|_l⌒l_||
   ̄ ̄`ー' ̄   `ー'  `ー'   `ー'
585仕様書無しさん:2001/07/25(水) 04:04
>>562
やっぱりLispはAI言語だよ。
幅広い分野に応用出きるから、他の分野にも応用されてるだけ!
私は、Lispで言語意識のシミュレーションをやっているが
Windowsパソに、ここぞと言う時に「Fuck you!」なんて言われたら
ムッと来るよ。映画ターミネーターが洒落にならない言語だと思う。
軍事利用には、危機感を感じる。
今後の課題は、ストレスをどう関数化するかだ。

バイオリズムのように単純なSinカーヴでシミュレーションしても
それらしいアルゴリズムは書けるが・・(それっぽいと言うか・・)
人の気分って意外性があるからね。
586仕様書無しさん:2001/07/25(水) 04:07
Lispの仕事って少ないだろうけど、実用性がないって事はないよ。

「普通のやつらの上を行け 」
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
587仕様書無しさん:2001/07/25(水) 20:01
lispはMITで擁護されてるから大丈夫。
588仕様書無しさん:2001/07/25(水) 21:13
>>586
とても面白かった。
環境はそろってるから今年中にはマスターしたい。
589仕様書無しさん:2001/07/25(水) 21:48
>>586 面白い記事ですねぇ。確かに知らない言語(Lisp(俺にとっては))
の機能って想像もつかない。ちと、勉強したくなった。
590仕様書無しさん:2001/07/25(水) 23:34
Roland CakeWalkという音楽ソフトのカスタマイズ言語も
CALというlisp言語。(音楽屋は理解してるのか?)
MMLとして使えたりすると面白いかな。
(play-code 4/4 'A/C# 'C-dim 'D 'Dm6 ...)
591仕様書無しさん:2001/07/26(木) 02:06
>>590
Common Lisp Music というのがあるよ。(かなり大掛かりな印象)
ttp://home.interlink.or.jp/~ipfr_cat/sndjp/clmjp.html
592仕様書無しさん:2001/07/26(木) 02:22
普通のヤツらの上を逝きたいヤツらは、Haskellだ。
何となく、文法がかっこいいし(wara
593仕様書無しさん:2001/07/26(木) 02:28
CLMのメインサイト
(あのマッカーシーがいるスタンフォード大学)
http://ccrma-www.stanford.edu/software/clm/
594仕様書無しさん:2001/07/26(木) 15:10
>>592
おれはMLがいいな。(Object-Caml or SMLNJ)
595仕様書無しさん:2001/07/27(金) 01:22
Windows で EXE の作れる Lisp って ACL だけかな?
596仕様書無しさん:2001/07/27(金) 05:48
>583
スタンフォード大学とYAMAHAは関係が深いらしい。
597仕様書無しさん:2001/07/30(月) 19:53
頑張って全部読んでみた。

俺は最近Lispについて真面目に勉強する機会があったのだが、
このような機会がなければ、Lispなんて見向きもしなかっただろうし、
多分Lispは古いからイラン、とか言っていたと思う。

でも、実際触ってみると違うんだよな。
括弧だらけで保守しづらいとかいうのは見た目だけで、
関数型は副作用がないため、再利用はしやすいし。
デバッガと連動しているのも良かったな。

現在、Lispがどのくらい実用的か?というのはともかく、
やっぱり違った視野から物事を覗くことも大事だな、と思ったよ。
#駄文スマソ。
598仕様書無しさん:2001/07/30(月) 22:02
>>597
何を頑張って詠んだのよ。
599仕様書無しさん:2001/07/31(火) 02:57
このすれざんしょ
600仕様書無しさん:2001/07/31(火) 23:39
ふと考えてみた、、、
Windows が Lisp で動いていたら、きっと強烈なウイルスが
蔓延しているのではないかと。
601仕様書無しさん:2001/08/01(水) 05:39
かつて人工知能が華やかなりし頃はLispの仕事もありましたなぁ
Symbolics社っていつの間に消えたの?

何で読んだか忘れたが、「Lispは田舎者である」っていう冗談があったね。
やたらとカッコをつけたがるが、すぐに方言が出る…
602仕様書無しさん:2001/08/01(水) 12:37
603仕様書無しさん:2001/08/01(水) 13:34
emacs を使い倒したいがために LISP を覚えた俺は DQN?
604仕様書無しさん:2001/08/01(水) 13:56
(DQN-p 603)
nil
605仕様書無しさん:2001/08/01(水) 15:05
('nil)
T
606仕様書無しさん:2001/08/01(水) 15:04
(DQN-p >>603)
T
607仕様書無しさん:2001/08/01(水) 15:08
setqリョクないなぁ
608仕様書無しさん:2001/08/01(水) 21:38
(>>603)
DQN

>>603 の中身がドキュソ
609仕様書無しさん:2001/08/01(水) 23:06
その昔、仕事そっちのけで Vz のマクロにハマったオレも DQN?
610仕様書無しさん:2001/08/02(木) 03:01
611仕様書無しさん:2001/08/03(金) 05:40
このスレ息長いね
1年過ぎてんじゃん
612コメント無しさん:2001/08/03(金) 12:21
>>611
それだけ書きこみがないってことか。
613仕様書無しさん:2001/08/03(金) 20:52
>>611
あ、ホントだ。>>1 の学生君は卒業したか?
614仕様書無しさん:2001/08/06(月) 20:27
揚げて見る
615仕様書無しさん:2001/08/07(火) 22:27
で、結局 Lisp ってどうなのよ?
616仕様書無しさん:2001/08/07(火) 22:37
このスレって今だったら技術板に立てる内容だよね。
617仕様書無しさん:2001/08/08(水) 14:19
スレ違いならスマソ。
ここの会社ってどんな感じか知ってる人いたら
教えて下さい。なんかLispで書いたWebサーバ
売ってて、CMU卒の超有名なセンセがいらっしゃ
ると伺ったのですが…

ココ→ http://www.crl.co.jp/
618仕様書無しさん:2001/08/11(土) 15:48
lispの最適化って、どれぐらいのものを期待できるんでしょうか。
ACLは凄いらしいですが、実際に展開コードを見たわけではない
ので想像つかないです。使ってる人いたら教えてください。
出力コード参照できればいちばんいいんですが。
619仕様書無しさん:2001/08/11(土) 17:21
ACL 欲しいけど、いくら位するのよ?
620仕様書無しさん:2001/08/11(土) 20:04
この板の住人て、全員 Emacs Lisp を完璧に使いこなしていて、全員 Emacs でごりごりコード書いてるんですよね?
621仕様書無しさん:2001/08/11(土) 20:10
20万円します。>619
622仕様書無しさん:2001/08/11(土) 20:23
>>620
EMACS Lisp 好き = Lisp 好き では無いんでないの?

>>621
買って買えない値段では無いですけどねぇ。。。ハァ・・・
623仕様書無しさん:2001/08/11(土) 20:27
>>622
ACL のインタープリター版は只じゃなかたっけ?
624仕様書無しさん:2001/08/11(土) 23:28
ソースきぼん>6623
625623:2001/08/12(日) 00:16
>>624
ACL 5.0 のトライアル版は、EXE が作れないだけで期間の制限は
無かったが、ACL 6.0 トライアル版は、EXE が作れる代わりに
期限付きライセンスになってしまったようです。スマソ。

最長で6ヶ月使用できるようです。
http://www.franz.com/support/documentation/6.0/doc/faq/faq-entries/faq1-6.htm#165
626仕様書無しさん:2001/08/12(日) 00:32
ありがとう>625
627仕様書無しさん:2001/08/12(日) 00:37
ACL の個人使用は、無料にして欲しいなぁ >franz inc.
628仕様書無しさん:2001/08/12(日) 00:40
>>622
EMACS 使い = Lisp 好き
の間違い?
629仕様書無しさん:2001/08/12(日) 00:42
なんだかんだ言ってもLISPの仕事なんて見たことないしな。
無理して覚える価値はない言語だな。
630仕様書無しさん:2001/08/12(日) 01:00
>>629
教養としての値打ちはあるよ。
これはこれで実に巧くまとまっている。
631463:2001/08/12(日) 01:18
>>1
Lisp なんて、だめだめ使っているの見たこと無い!!
大体人工知能にしたって、進化は止まってるしさっさと捨てちゃエバーーーー
632仕様書無しさん:2001/08/12(日) 01:25
Pascal と Lisp は、覚えていて損の無い言語だよ。
この2つを覚えておけば、あとの言語は応用だね。
633仕様書無しさん:2001/08/12(日) 01:29
こんなものを見つけた。

http://jp.franz.com/base/technology_doop.html

>ANSI CLOSはコマーシャルにその実力が証明され、世界中で有名な開発プロジェクトに
>使用されています。Price WaterhouseとAT&Tは、会計監査や電話交換機といった高度な
>アプリケーションにANSI CLOSを使用しています。またGeneral Electricと
>Pratt Whitneyはジェットエンジンの開発をANSI CLOSアプリケーションによって
>行っていますし、Boeingは同様に777のような新しい航空機を設計しています。
>さらに、FordとJaguarは新しい自動車システムを設計していますし、Motoloraと
>Texas Instrumentsは生産スケジューリングや ICのデザインにANSI CLOSを使っています。
>Microsoftも「Bob」のような画期的なアプリケーションの開発にANSI CLOSを使っているのです。

Microsoft Bob って・・・。
634仕様書無しさん:2001/08/12(日) 01:48
>>632
論理型言語 (Prolog) とかオブジェクト指向言語 (C++, Java) は、
また別の知識が必要になると思われ。オブジェクト指向は、言語云々
よりも分析・設計に半分以上の価値があるわけだし。

まぁ、とりあえず Pascal と Lisp やって損はないというのは同意
だが。
635仕様書無しさん:2001/08/12(日) 01:58
>>633
お子ちゃま向けのビジュアル・シェルらしい。MS の失敗プロジェクト。
http://www.gratefuldad.com/twinsoft/products/msbob/msbob.html

マイクロソフト・ボブ
マイクロソフト・ボブは、Microsoft Windowsのための家族向きのインターフェイスである。
ボブは、手を貸すために部屋、家具、暖かい炉床と生き生きした形質でメニューに基づく、テキスト集約型のWindowsデスクトップをフレンドリーな環境に変える。
各々のファミリーメンバは彼ら自身のボブ環境をつくることができる、あるいは、パブリックまたは個人の(パスワード保護された)アクセスで彼ら自身のカスタマイズされた部屋をつくって、メンバは同じ環境を共有することができる。
金庫さえ、公共ラウンジの中で専有ファイルを保つためにある。
あなたにファミリーコンピュータを使う子供がいるならば、マイクロソフト・ボブはあなたの系をプロテクトするすばらしい方法である、そして、子供が彼ら自身の楽しみをつくるのを許す間、知覚しうるファイルはWindows環境をカスタマイズした。
Windows「ホームから」に加えて、マイクロソフト・ボブは、それ自身の統合したワードプロセッサー、カレンダー/形成体、財政的な管理者、家庭管理者、電子メール顧客、アドレス帳とGeoSafariゲームを含める
636仕様書無しさん:2001/08/12(日) 02:14
>>634
元祖オブジェクト指向の SmallTalk は、Lisp の影響を
かなり受けていませんか?
637仕様書無しさん:2001/08/12(日) 02:23
>>631
> 大体人工知能にしたって、進化は止まってるしさっさと捨てちゃエバーーーー

「人工知能」って非単調論理の知識推論エンジンなんかも含みますか?
天気予報なんかに使われてますよ。まあ推論エンジンは研究段階はLispで、
市場に出回っているのはCやC++で書かれていますが。
638仕様書無しさん:2001/08/12(日) 02:24
>>636
実装技術もXerox InterLisp系。
639仕様書無しさん:2001/08/12(日) 02:28
Lisp で実装された Prolog もありましたね。
640仕様書無しさん:2001/08/12(日) 02:32
Lispは大変すぐれた処理系だと思う。
でもあの大量の括弧がどうしても好きになれない。
あの括弧が色々な利点をもたらしているのは分かるけれど・・・。
Lisperを長く続けると慣れちゃうものなの?
641仕様書無しさん:2001/08/12(日) 02:49
>>640
Lisp モードのあるエディタを使わないとツライかもね。
642仕様書無しさん:2001/08/12(日) 03:32
>>640
気にならないよ。むしろS式をkey叩くだけで持ち運び出来て楽。
とりあえず、editorはemacsでcode書いてみたら?
kill-sexp, mark-sexp, backward-kill-sexp, forward-sexpなどが、M-C-一文字に。
643仕様書無しさん:2001/08/12(日) 05:55
>640
マクロで単純な構文を作ったりリーダーを修正したりすれば、
括弧をあまり書かなくて済ます方法はあるよ
慣れればアイデアをそのまま適用できる言語として重宝する。
特にS式を加工して最適なコードを自分で模索できるのがすばらしいと
思うのだが。
コンパイラや実行環境がヘボかったり、恐ろしく冗長なコードを書いても、
コンパイラに渡す前の段階で、ユーザー自身の手でかなりの所まで最適化できる。
これと同じ事を他の言語でやるのは難しい。
644仕様書無しさん:2001/08/12(日) 06:06
>コンパイラに渡す前の段階で、ユーザー自身の手でかなりの所まで最適化できる。

ハンドオプティマイズは、他の言語でも出来ると思うけど。
なんか Lisp 独特の方法があるの?
645仕様書無しさん:2001/08/12(日) 06:40
>644
>他の言語でも出来る
といってもlispほど容易にできるわけがない、って事でしょ
646仕様書無しさん:2001/08/12(日) 14:46
>>644
やっぱ、S式を扱うlisp programでやるって事を言ってるんじゃねーの?
ハンドオプティマイズじゃなくて。
647仕様書無しさん:2001/08/12(日) 15:10
>>646
Lisp は、Program=Data だから、構文解析は要らないとしても、
オプティマイズがそんなに簡単に出来るんでしょうかねぇ?
648仕様書無しさん:2001/08/12(日) 15:28
>>647
> マクロで単純な構文を作ったりリーダーを修正したりすれば、

つうことなので、機械的に出来たS式には、
((lambda (x) x) y)
ちゅうのも含まれたりする。よって、
((lambda (x) x) y) → y
ちゅうくらいの変換を幾つかやるんでないの?

作成する奴は固定なんだから、覗き穴最適化出来るようなのは、
パターンが決まっていているわけし。プログラム変換って結構冗長なコードが出来る。

俺も書いた事あるよ、覗き穴。変換ルールの方で凝ったの作るより簡単。
649仕様書無しさん:2001/08/13(月) 05:51
相互再帰関数(無限再帰 x->y y->z z->x)
(define (x n) (display 'x) (display n) (y (1+ n)))
(define (y n) (display 'y) (display n) (z (1+ n)))
(define (z n) (display 'z) (display n) (x (1+ n)))
これをxについて展開

(define x
  (lambda (G614)
    (display 'x)
    (display G614)
    (let ((G617 (+ G614 1)))
      (display 'y)
      (display G617)
      (let ((G629 (+ G617 1)))
        (display 'z)
        (display G629)
        (x (+ G629 1))))))
こういう機械変換なら結構簡単
650仕様書無しさん:2001/08/13(月) 06:00
let->lambda
(define x
  (lambda (G115)
    (display 'x)
    (display G115)
    ((lambda (G116)
       (display 'y)
       (display G116)
       ((lambda (G117)
          (display 'z)
          (display G117)
          (x (+ G117 1)))
         (+ G116 1)))
      (+ G115 1))))
651463:2001/08/13(月) 06:21
Lisp なんて役に立たないのに、
652仕様書無しさん:2001/08/13(月) 06:27
アンチリスプ信者ってなんか多いみたいね。>この板
653仕様書無しさん:2001/08/13(月) 06:40
>>651
Lispに特徴的な現象として、アプリケーション自体がまずLisp上で
構築され、さらに拡張言語としてLispを採用している場合がままあります。
使われてるのを列挙すると、
エディタ emacs xyzzy など
日本語入力のCanna やskk
シェルとしてscsh
windowマネージャー GNOME GWM scwm sawfish
GIMP (image processing)
Applixware (Office, SHELF)
SIAG (Spreadsheet and other Office)
snd (sound editor, Guile)
AutoCAD
(Cakewalk (Music, CAL)) {looks familar but probably not a lisp}
DSSSL
654仕様書無しさん:2001/08/13(月) 06:49
655仕様書無しさん:2001/08/13(月) 18:45
屁ー、GIMPがねぇ
656仕様書無しさん:2001/08/14(火) 11:10
AutoCADってLispでうごいてんの?
657仕様書無しさん:2001/08/15(水) 00:15
>>655
script-fu使ってないノン?楽しいscriptたくさんあるヨン
658仕様書無しさん:2001/08/15(水) 03:03
>>656
AutoCADはAutoLisp。
Lisp2Cというトランスレーターが付いてる。
659仕様書無しさん:2001/08/15(水) 04:53
CRLのLISPACHEサーバーってどうよ?
660仕様書無しさん:2001/08/15(水) 16:37
661仕様書無しさん:2001/08/15(水) 21:00
最初はLISPよかSchemeがいいと思う。
素のLISPはとっつきにくい
662仕様書無しさん:2001/08/16(木) 01:59
Schemeシンプルでいいね。
663仕様書無しさん:2001/08/21(火) 04:36
lispは良くも悪くも研究用だね
664仕様書無しさん:2001/08/23(木) 14:45
マクロって、Cでは混乱の元、ってイメージがあるけど
Lispのは大丈夫なのかな?
つうか混乱するのは漏れだけか。逝ってきます。
665仕様書無しさん:01/08/28 01:10 ID:mHosmIv.
>>664
CのマクロはCの文法の事ほとんど何も知らないよね。
LispのマクロはS式の事を知っているから。

「だからS式は素晴らしいんですよ!」(田中真紀子風)
666仕様書無しさん:01/08/28 01:13 ID:w0po3FXw
>>664
lispのマクロは基本的にifとかの構文と同等に扱えます。
また、lispの関数と同様、可変引数を自然に扱うことが可能なので、
シーケンスを直接埋め込んだりするなどができます。
式の二重展開や名前の衝突など、Cマクロと同様の問題を持ってますが、
前者はlet等へのバインデングの作成、後者はgensymなどによる一時シンボル名
の生成で回避できます。混乱度はCマクロよりもかなり低いと思います。
ちなみにScheme(R5RS以降)ではこれらの問題を自動的に解決するマクロ機構を備えています。
667仕様書無しさん:01/08/28 01:18 ID:w0po3FXw
lispマクロについては
defmacro define-macro
で検索してみてください。
Schemeマクロは
define-syntax syntax-rule syntax-case
668仕様書無しさん:01/08/31 19:27 ID:kiIHB6z2
Lisp って for ループあるんですか?
669仕様書無しさん:01/08/31 19:52 ID:kSdu1nBY
>>668

まじか、ネタか知らないけど、再帰的に呼び出すことがループになるなり
670仕様書無しさん:01/08/31 19:54 ID:MmJ9V04g
dotimes が一番近いかな。CommonLispだけどね。
671仕様書無しさん:01/09/01 00:08 ID:wL4i9qWQ
schemeでもdoがあるよ
でもなるべくmapとかfor-eachとか使うほうがscheme的
672仕様書無しさん:01/09/01 00:16 ID:MI1ElQb.
ふー。Recursion のとこまで読んだ。
自分自身を再帰的に呼び出すってのがなんか変な気分。
鏡を2枚平行に置いてのぞきこんだ感じかな。
673仕様書無しさん:01/09/01 09:58 ID:LmzRABNo
自分自身を再帰的に呼び出すってのがなんかオナーニっぽいかんじ。
自分のイチモツで、自分のアナールに挿している感じかな。
674仕様書無しさん:01/09/01 18:48 ID:kVnx12.k
>>673
変態ヨガー発見!
675仕様書無しさん:01/09/01 20:42 ID:eDHW1r7E
Guileってどうなのかな?
676仕様書無しさん:01/09/02 14:04 ID:ovUcLgnI
Lispに関して,次の記述のうち正しいものはどれか?

(1)Lispは,Fortranと並ぶ古い歴史をもつ言語である.
(2)Emacsエディタは,実はLispで書かれている.
(3)Javaにあるメモリ自動回収機構(ガーベジコレクション)は,Lispでは常識.
(4)末尾再帰呼出しをループに変える最適化を行なうLispコンパイラがある.
(5)Common Lispには,オブジェクト指向の機能が含まれている.
(6)Common Lispでは,負の数の平方根や30の階乗計算で正しい答が返ってくる.
677仕様書無しさん:01/09/02 14:30 ID:5dOWVfrI
>>676
(2)だけ不正解…としたいのかもしれないけど、単に「Emacsエディタ」
といったらどのEmacsエディタを指すのか不明なので(2)は選択肢として
不適切。実際にLispで書かれているEmacs系エディタとして、Lispマシ
ンで動くZmacsがあった。
678仕様書無しさん:01/09/02 14:57 ID:yc0IoDhM
>>673
Lispとは話がずれるけど、
ファイル検索レベル物さえ作ったことがないのかい?
679仕様書無しさん:01/09/02 15:00 ID:31wZzlWE
>>677
つーか、Teco版の次に出来たMultics EMACSはMACLISPで書いてあったけど?
680仕様書無しさん:01/09/03 01:18 ID:mGjzrO82
age
681仕様書無しさん:01/09/03 02:24 ID:zjYbOMsw
>>676
>(4)末尾再帰呼出しをループに変える最適化を行なうLispコンパイラがある.

多分、普通のLISPでは、コンパイルしなければ展開してくれない。
(named-letを初めから提供してるLISP処理系なら多分インタプリタでも展開する。)
LISPの方言のSchemeではデフォで展開される。(言語仕様の一つ)
他のHaskellやMLみたいな関数型言語はデフォ。
682仕様書無しさん:01/09/03 02:56 ID:zjYbOMsw
>>674
(1)はジョン・マッカーシー(John McCarthy)で検索
(2)emacs-lispで検索
(3)gcの載ってないlispってあるのかな?
(4)>>681参照。他はlisp tail-recursionで検索
(5)CLOS MOPで検索
(6)知らん
683682:01/09/03 02:57 ID:zjYbOMsw
674->676
684仕様書無しさん:01/09/03 05:37 ID:NM10BEy2
>676 (2)Emacsエディタは,実はLispで書かれている.
emacsのソース読め
685仕様書無しさん:01/09/03 22:06 ID:NqCsgP4I
よさげなページ発見シターヨ

プログラミング言語Schemeの紹介
http://www.biwa.ne.jp/~mmura/scheme/schemeintro.html
686仕様書無しさん:01/09/06 03:12 ID:oDQjcmPs
>>676

誰も言及してないところで、

> (1)Lispは,Fortranと並ぶ古い歴史をもつ言語である.

これが正しいかどうかは、「並ぶ」の定義によるな。
始めはFortranのリスト処理ライブラリでしょ?
687仕様書無しさん:01/09/07 04:58
COMMON LISPが出たときに、あの厚い企画書を見て
吐き気が生じてやめました。 ライブラリと言語の
区別がつかないような馬鹿な言語設計はあきれた。
必要にして最小限で最大限の成果を得るべく言語は
作られるべきです。プログラマーを囲い込むための
ものではない。 自然言語ほどの寿命もなければ
自由に読めるソースもないのに。
688仕様書無しさん:01/09/07 22:41
Common Lispの話になると、分厚い規格書の話が出ますね。
Lispの規格書は比較的薄いというイメージがあったのですが、
こいつとEmacs Lisp(ワラ)は例外なのかな?
研究室にあったCommon Lispの本でも見てみようっと。
689仕様書無しさん:01/09/07 23:11
Emacs Lisp って、ぶあつい部類にはいるんですか?

たしかに、入門マヌアルが、300 ページ、
レファレンス マヌアルが 700 ページで、合計 1000 枚 ですけど、こんなもんかな、とおもてました。
690仕様書無しさん:01/09/09 02:46
関数が沢山あるだけなんじゃ?
C/C++の標準ライブラリの様な
691仕様書無しさん:01/09/10 18:04
さいきんemacsでLISPにはまってます。
ところで、もっといい例を挙げれればいいんですが、
LISP的には、

(defun foo (str)
(if (string= str "a")
(setq str "b")
(setq str "c")))

のような書き方よりも、

(defun foo2 (str)
(setq str (if (string= str "a") "b" "c")))

のような書き方のほうが、やっぱりいいんでしょうか?
692仕様書無しさん:01/09/10 19:42
人間が読んでわかりやすければどちらでもいいと思う。
693仕様書無しさん:01/09/10 21:25
>>691

(defun foo (str)
(cond ((string= str "a")
(setq str "b"))
(t
(setq str "c"))))

ifはindentationとelse部「のみ」の暗黙のprognがイヤンなので、condが好みです。
694仕様書無しさん:01/09/10 23:51
>>691
lispはコードを機械的に加工するとかも有り得るから、
特にインデントや書き方にこだわらなくても良いと思う。
695仕様書無しさん:01/09/11 00:42
>>687
CやC++の規格にもライブラリは入ってる。
(FortranにもPascalにもAdaにも。)

でもCだと標準ライブラリが足りないので、
みんな似たようなハッシュやツリーやリストを
何度も何度も書くはめに...

その反省の結果がSTL。

Schemeの規格書は薄いが、やっぱりライブラリが
足りない。(書式つき出力くらいは欲しい。)
696仕様書無しさん:01/09/11 04:34
EulispやISLISPも苦戦しとるの〜。
Common Lispがみんなから愛される仕様でなかったのはかえすがえすも残念。
697仕様書無しさん:01/09/11 11:12
>>691
setqを使わないのがモダンなLispらしいプログラムと思われ
(Emacs Lispじゃ無理だが)
698仕様書無しさん:01/09/11 12:32
>>696
>Common Lispがみんなから愛される仕様でなかったのはかえすがえすも残念。

一瞬勘違いして、以下のように読んでシモタ
>Common Lispがみんなから愛される仕様でなかったのはえなりかずきも残念。
病院逝ってくるか…
699仕様書無しさん:01/09/12 03:35
schemeはi/o関係が弱いね
SLIBが必需品
700仕様書無しさん:01/09/12 08:17
slibは便利だけど‥‥

バイナリI/Oとかはどうしようもない。無いんだから。
あと、「すでに存在するファイルに書こうとすると結果は未定義」。
弱すぎ。
701名無しさん@XEmacs:01/09/14 01:04
a.g.e.
702仕様書無しさん:01/09/14 04:37
>>700
FFIでなんとかならん?
703仕様書無しさん:01/09/14 08:25
>>702
まあ処理系によってはなんとかなるかも...

でも、slibに入れられるほど多くの処理系で他言語関数呼び出し
が使えるわけじゃない。言語としては欠点でしょう。やっぱり。
704仕様書無しさん:01/09/14 22:25
DrScheme の名前が一度も出てないけど、しょぼいのかな?
教育用のScheme 、ってことで今ダウンロードしてるんだけど。
Scheme そのものが教育用なのに、それをさらに教育用に特化したなら、カナーリ覚えやすいだろう、ってことで。

http://www.google.com/search?hl=ja&q=DrScheme&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
705仕様書無しさん:01/09/17 00:04
DrScheme の開発環境では日本語を入れると文字化けするらしい。
付属のMzScheme なら通るらしい。
706仕様書無しさん:01/09/17 03:36
>>704
DrSchemeはインストールしたらそのままIDEで使えるけど、
すぐ設定を変えた方がいい。(そのままだと奇妙な制限がある)
初期設定がビギナーズみたいな名前になってるから、
それを最高ランクの設定に変える。(Full Schemeとかなんとか)

でも、MIT-Schemeが色々な面でお勧め。
707仕様書無しさん:01/09/17 19:58
MIT Scheme の方がいいのかぁ。
DrScheme のステップボタン機能にめっちゃ感動したんですけど。

(* 2 (+ 3 4))

例えば、こんなS式なら、ステップボタンを押すと、まず
(* 2 7)
となって、次に
14
と表示されます。カッコの中を一つづつ処理して、その過程を見せてくれるんですね。
しかも、きれいに色分けして。

ここが気に入りました。
708仕様書無しさん:01/09/19 02:45
継続を使って、evalを細工すれば、標準的なschemeの
機能だけで>>707の言う様な、ステップ実行のデバッガが
作れる気がするんですけど、どうでしょうか。
evalを細工するって所が処理系依存かも
709仕様書無しさん:01/09/19 22:02
(define (f x y z)
  (cond ((> x y)
   (f (f (- x 1) y z)
    (f (- y 1) z x)
   (f (- z 1) x y)))
  (#t y)))

(f 12 6 0)

なんかこれEvaluate させたら結果でるまで5分カカータ。
710仕様書無しさん:01/09/22 04:34
>>709
うちだと4秒で終わったが。

しかしtaraiとは古いね〜。
709はかなりな歳と見た。
特に(#t ...)ってとこが。
711仕様書無しさん:01/09/22 10:42
>>710
(eq? #t else)
=>#t
は羞恥の事実だとおもいますが
712仕様書無しさん:01/09/22 11:48
>>711
R?RS的には否
713仕様書無しさん:01/09/22 18:36
>>711
(cond ... (#t ...)) と書いても
(cond ... (1 ...)) と書いても
(cond ... ('() ...)) と書いても
(cond ... (else ...)) と同じ動作をするが、
古いLispを知らないと
(cond ... (#t ...))
なんて発想は思い浮かばんでしょー。

つい太古のLispを使ってた癖が出たものと思われ。
714仕様書無しさん:01/09/22 18:39
ついでに、
> (eq? else #t)
> =>#t
そんな処理系知らんです。あるの?
715仕様書無しさん:01/09/23 04:08
(define else #t)
716仕様書無しさん:01/09/23 04:35
>>715
だからelseは変数名じゃなくてキーワードだっつうに。
評価されないの!
(cond (else ...) (foo ...)) なんて書くとエラーだよん。
717仕様書無しさん:01/09/23 11:27
>>716
そんな制限は一部の処理系だけです
718仕様書無しさん:01/09/23 12:10
俺的にはtではなく#tなあたりで十分新しい処理系だと思っていたり。
719仕様書無しさん:01/09/23 14:02
>>717
だからscheme仕様的には否
>>716 が正
R5RS嫁

>>718
それはschemeだったら当然
720仕様書無しさん:01/09/23 17:49
>>717
処理系の制限じゃなくて言語仕様だよん。
http://www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html
721仕様書無しさん:01/09/23 17:51
スマソ
elseについて書いてあるのは
http://www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC34
722仕様書無しさん:01/09/23 22:55
DrScheme で
  (cons 'a '())
を評価したら、
(a)
となると期待したのに、実際は
quote: misused: '() is not a symbol
となってしまった。
うーん、なぜだ(藁
723仕様書無しさん:01/09/23 23:10
自己解決しました。
Language level が一番しょぼかったからでした。
Full にしたら問題無く評価できました。
724仕様書無しさん:01/09/24 09:58
>>716 >>719
cond/caseをマクロ展開する処理系では、
elseはただのシンボルという事もありえる。
それと、elseは特殊なキーワードってわけではない。
仮にcond/case式の中で使うelseが
(define else #t)
と定義されていても構文上はあまり関係ない。
R?RSには細かい事は書かれていない筈。
>>711の「羞恥の事実」はどうかと思うけど)
725仕様書無しさん:01/09/24 10:12
マクロ使えば下の様な文も作れると思うけど
こういう事する人はいないのかな?
(if test-expr-1 then
 true-sequence-1...
else-if test-expr-2 then
 true-sequence-2...
else-if test-expr-n then
 true-sequence-n...
else
 false-sequence...)
726無名λ式:01/09/24 10:35
>>724
> R?RSには細かい事は書かれていない筈。

R5RSのsyntactic keyword関連を読むべし。
727仕様書無しさん:01/09/24 10:45
>>724
>それと、elseは特殊なキーワードってわけではない。

<構文キーワード> ---> <式のキーワード>
    | else | => | define
    | unquote | unquote-splicing

とりあえず、R5RS を読め。
728仕様書無しさん:01/09/24 15:33
からむね…(w
構文キーワードってカッコの先頭に来る物以外、
どういう構文であれ関係ない筈なんだが。
(syntax-keyword [syntax...])
729仕様書無しさん:01/09/24 15:54
>>725
カッコ書くの面倒だからこんなの作って使ってる。
(let< local-a binding-a
    local-b binding-b >
 body...)
730仕様書無しさん:01/09/25 00:22
>>726
>>727
じゃないけど、からんでるわけじゃないと思う。
(define else #t)だったとしたら、ユーザが
(define else #f)としてしまったらどうなるか?
とは仕様考える人や処理系実装する人なら当然思いつくわけで。
考えた上で「めんどくさいからいいや」ってことはあるけども。
731730:01/09/25 00:34
誰当てか不明瞭だった。
>>728 です。

あと、それどこに書いてあんの?
732仕様書無しさん:01/09/25 05:41
(define else #t)によって(cond (else ...))を実現している
処理系は規格違反か?
→たぶんno。しかし、そういう処理系だとcaseはどうするの?

(define else #t)は羞恥の事実か?
→冗談でしょ。

(define else #f)すると何が起きるか?
→R5RSにはちゃんと書いてない。

 局所変数は、キーワードをshadowし、キーワードは変数を
 shadowすると書いてある(4.3.2)。

 一方、initial environmentは変更できなくても良いと書いて
 ある(6.5)。また、トップレベルでbuilt-in procedureを再定
 義しても良く、その結果他のbuilt-in procedureの振る舞い
 は変らないとある(6, Notes)。(要するに、built-inをインラ
 イン展開して良いってこと。)

 これを満たすありがちな実装としては、initial environment
 の「子」としてトップレベルの環境(interactive
 environment)があり、トップレベルでbuilt-in procedureと
 同じ名前の変数をdefineするとinitial environmentの変数を
 shadowする、というもの。

 だとすると、トップレベルでdefineするのも局所変数として
 バインドするのも同じで、キーワードとしてのelseはshadow
 されるという解釈がありうる。(hygienic macroのセマンティ
 クスの意図に沿ったすなおな解釈だと思う。)

 しかし、initial environmentが変更できる実装も可能だし、
 だいいちcondやelseはprocedure名でない。6.5やNotesの記述
 が当てはまるかどうかは書いていない。scmやguileでは、
 (define else #f)してもキーワードとしての解釈は変らない
 ようだ。
733仕様書無しさん:01/09/26 03:12
caseやocndの構文に出てくるelseや=>は構文で使われる終端記号としての
意味だけで、そのシンボルにバインドされている値の内容はどうでも良い。
condをマクロで作ってみればわかると思うけど。
734仕様書無しさん:01/09/27 20:57
>>732
>(define else #f)すると何が起きるか?
>→R5RSにはちゃんと書いてない。
何も起らないんじゃ?
>else
==>#f
となるだけで。
これでcondの挙動が変わるなんて事は無い筈
735732:01/09/28 02:35
>>731

しかし、R5RSに従えば、
(let ((else #f))
(cond (else 1)
(#t 2)))
=> 2
でなければならない(実際scmではそうなる)。
letがletrecでも同じ。

すると当然、
(let ()
(define else #f)
(cond (else 1)
(#t 2)))
=> 2
のはず(実際に、きちんとそうなる処理系は知らない)。

とすれば、
(define else #f)
=>unspecified
(cond (else 1)
(#t 2))
=>2
となる処理系があってもおかしくないと思われ。
(これはR5RSに反していない。つーかこれこそhygienicで一貫してる。)
736732:01/09/28 02:37
あ、731 は >>734 のまちがい。スマソ
737仕様書無しさん:01/09/29 00:04
Schemeか。
closureの連鎖が面白い
738仕様書無しさん:01/10/01 21:42
lambdaで状態を作るってこと?
739名無しさん@XEmacs:01/10/03 14:48
age
740仕様書無しさん :01/10/06 17:04
関数型言語に関して初心者です。

cやjavaなどの言語に比べてデータに対する柔軟性は確保されるもの
なのでしょうか?もしそうであれば取り組んでみたいと思います。
DBの構造が変わってしまうとプログラムを作り変えなんて自体は
仕事として取り組まれているプログラマのかたであれば一度や二度の
経験ではないはずです。
そういったところから興味があります。
741仕様書無しさん:01/10/07 03:30
>>740 質問の意味がちょっとわからんけど、
データ構造は他と比べて柔軟に定義できるよ。
LISPコード自体もデータとして扱えるし。
742名無しλ:01/10/07 03:34
柔軟性というと難しいが
抽象度で言えばLispもCも変らんと思う

変更に強いことを目指すなら
JavaとかでOOを使った方が良いかも
743仕様書無しさん:01/10/08 22:27
LISPってGUI作れるの?
744仕様書無しさん:01/10/08 23:10
>>743
処理系によっては作れるよ。GuileからGtkとか。
745仕様書無しさん:01/10/08 23:17
>>743
すげー頭悪そうな質問だな
746仕様書無しさん:01/10/08 23:45
言語仕様とGUIがセットに考えられるのってWinとかMACの世代な
んだよね。きっと。
747仕様書無しさん:01/10/09 00:46
>>743
GUIなんてOSのAPI呼び出したりボタンやら貼っ付けるだけだろ!
748仕様書無しさん:01/10/09 00:50
>>746
それをいうならVBとかHSPの世代だろ。
749仕様書無しさん:01/10/09 01:19
>>748
HSPの世代は「GUIしかない」でしょ。
750仕様書無しさん:01/10/09 01:50
つーか、>>745は、「GUI libraryのあるLISP処理系ある?」
じゃないと馬鹿っぽいとかそんな小姑(失礼ッ)みたいなことをいってい
751仕様書無しさん:01/10/09 09:54
プログラム板に合流ってことで。
http://piza2.2ch.net/test/read.cgi/tech/1002584344/
752考える名無しさん :01/10/09 10:48
ところで1は今どんな仕事をしてるのか?
それともまだ学生か?
Lispやってっかー?
753Lisp初心者歴10年 :01/10/10 14:51
franz Lispにあるfexprって言う関数は
XLispにありません。
exprから誘導出来ますか?
当方抽象的な文章解説を、大きく誤解していると思われるので
XLispでfexprを、実現する方法をご存知の方おられましたら
よろしく、お願いいたします。
754Scheme初心者歴1週間:01/10/10 14:58
>>751
みんな〜おいてかないでよ〜
defunがdefineになったんですよね?
755753:01/10/11 06:51
だれも相手にしてくれない*_*;
LISP Scheme板盛り上がってるけどここではマルチポストとやらは
嫌われるらしいし・・・
いいもん ここの過去ログ見て拾ったfranz lisp for 386のソース
コンパイルするから
何々franz.16Mar94.tar.gzを解凍して ムニャムニャ
756仕様書無しさん:01/10/11 09:54
>>755
> だれも相手にしてくれない*_*;

FEXPRって関数か?
可変数引数を取る関数であるというDEFUNのラベルじゃないの?

(DEFUN FNAME FEXPR (LIST) むにゃむにゃ)

って使うんじゃなかったっけ? Common Lispなら、

(defun fname (&optional list) むにゃむにゃ)

だな。Xlispは10年近く使ってないからどんなlispなのか忘れた。
expr, fexpr, subr, fsubrもいまやobsoleteだ〜。
757756:01/10/11 09:56
し、しまった…
>>751のように合流するつもりだったのに…
反応があるなら、プログラム技術版に頼む。>>753
758仕様書無しさん:01/10/11 11:33
そういや、ASCIIからLISPの本が出たよね。
「プログラミング言語Lisp 入門からマルチメディアまで」
買ってはみたけど、まだ中を読んでない。
759山神竜一郎:01/10/11 12:53
>>756
&restじゃなかった?
当方20年近くブランクあるので違ってたらスマソ。
760756:01/10/11 13:12
何か泥沼だ…

>プログラム板に合流ってことで。
>http://piza2.2ch.net/test/read.cgi/tech/1002584344/
ということで、あっちに移動して話を続けます。さげ
761   :01/10/11 16:55
>>756さん
Schemeの話題と2元化しそうだし
叩かれるよりも孤独を好むのでこっちでいいです。
>(DEFUN FNAME FEXPR (LIST) むにゃむにゃ)
だとXLispでは
Error: bad argument type - FEXPR
Happened in: #<FSubr-DEFUN: #7343d8>
と出ちゃうんです。
762753:01/10/11 17:01
山神さん
私の名前は二見泰弘です よろしくお願いします。
763山神>>762:01/10/11 17:19
「山神竜一郎」は実名じゃなくて某競輪漫画から
とったハンドルネームですので。(あしからず)

ほんでfexprって(かなり古い記法と思われ)
1)引数を評価しない
2)引数をいっしょくたに1つのリストにまとめるので
可変個の引数を扱える。
という2つの側面があるのですが どちらの機能を
使うの?
1)ならdefmacro
2)なら&rest
やねんけど。(XLispなるものは知らないのでなかったら
スマソ)
764753:01/10/11 17:47
なんか話が見えて来ました。
引数を評価しないで関数に渡すんですね?
今Stuart C. Shapiro著
松田利夫訳のLISPによる人工知能の基礎技法
の序章を、目を皿の様にして読んでるのですが
共立出版の本て、どれも解りずらいです。
カーニハン&リッチーのプログラミング言語C
の時もそうでした。
でも垂水共之教授著のLisp-Statによる統計解析入門は
解りやすかったし(共立出版で例外)
垂水教授とは一度だけメール交換を
した事があるんですが私の専門分野は人工知能で
統計解析じゃないんです
765仕様書無しさん:01/10/11 20:30
>>764
たぶんマクロって形になると思うんだけど。
Schemeなら
DrScheme/STk
(define-macro fexpr (lambda rest body...))
Guile/SCMは
(defmacro fexpr rest body...)
可変引数として渡されるリスト(rest自身)に対して、
破壊操作はしない事。
ほんとはdefine-syntaxとか使うのが良いんだろうけど・・
766仕様書無しさん:01/10/11 20:50
>>761
>Schemeの話題と2元化しそうだし
2元化といっても、本質的にはほとんど変わらないんじゃない?
継続とか末尾再帰を持ち出されない限りは。
767753 :01/10/11 21:41
>>765
Thanx!
>>766
なんか ついdefunと打っちゃって てんとう虫出まくってます
malformed definition
も出まくる!
奇形の定義???
もうちっとリハビリしてから合流します。
768仕様書無しさん:01/10/11 22:53
>>767
マクロで、LISPならdefine、Schemeならdefunをそれぞれ作っておくとか。
それでも&rest/&optionと書けなかったり、微妙に違うけど。
↓LISP Schemeスレにあったやつ。(Schemeでdefmacro/defun)

(define-macro defmacro (lambda (name args . body)
 `(define-macro ,(cons name args) ,@body)))

(defmacro defun (name args . body)
 `(define ,name (lambda ,args ,@body)))
769753@徹夜覚悟:01/10/12 01:15
(define-macro fexpr (lambda rest body))
これでfexprは定義されてるって事ですか?
770753@徹夜覚悟:01/10/12 01:24
Lispで方言は、もうやめよう委員会発足!!
771    :01/10/12 05:46
ただいま化石をねつ造中 むにゃむにゃ
772仕様書Ω:01/10/12 05:53
動いたけど本当にfexprと同等の処理してるのか
わかんない。
中学生の時に今と同じ知識と知恵があれば
今頃ターミネーターや鉄腕アトム作ってるかな???
ふふふ 私の夢
773仕様書Ω:01/10/12 06:12
>>768さん
(define-macro defmacro (lambda (name args . body)
 `(define-macro ,(cons name args) ,@body)))
これは通ったけど
(defmacro defun (name args . body)
 `(define ,name (lambda ,args ,@body)))
これは通らなかったです。
っつーかマクロアセンブラ黎明期から
マクロって、うざいと正直思ってました。
Vzエディターのマクロもうざかった。
実際に走らせるのに必要な事覚えるだけでも大変なのに
まだあるのか〜みたいな・・・
774仕様書Ω:01/10/12 06:17
>>768さん
通ってました すいません。
>>all
Good morning
775ヘタレLisper@93:01/10/12 06:49
終わりは始まり
始まりは終わり
永遠の円環のなかで
今わたしは神を
プログラムしている

自らの思考を凝集し
完成に近づくプログラム
作品は己自身の鏡となる
そのとき私は悟るであろう
私自身が鏡そのもので
あったことを

私は誰に写されているのか?
向かい合った鏡たちが
問いをなげあう

答えは永遠の光の中へと
消えていった
776仕様書Ω:01/10/12 07:28
>>775さん
いい詩ですね。ミューズにとり付かれましたか?

私はαでありΩであるbyイエス・キリスト
777仕様書無しさん:01/10/12 09:02
クソスレ化してきたな
778仕様書無しさん:01/10/12 10:21
777ゲット!!
779仕様書無しさん:01/10/12 10:22
ガビーそ
780仕様書無しさん:01/10/12 10:29
>>777
パチンコ屋にGO
;========================================================================
;
; qa.lsp - Question answering program using set-of-support
; unit-preference resolution principles.
;
; Author: John W. Ward (jwward)
; Date: 06-Dec-86
;
; The following program was written for an Artificial Intelligence
; class at Kent State University. The testing sequence used was designed
; specifically to fit class requirements. The program is offered for
; inspection and experimentation. The only claim I make regarding the
; program is that I enjoyed working on it and learned something from it.
;
; Some of the algorithms and examples follow our textbook: Artificial
; Intelligence, by Elaine Rich (McGraw-Hill, 1983).
;
;-------------------------------------------------------------------------
782仕様書無しさん:01/10/13 00:23
>>775さて、この詩、ステキですね。
哲学していますね。
すごく深いですよねー。
人間存在のあり方だと感じました。
783仕様書無しさん:01/10/13 00:27
>>782
パクリだと思われ。
784仕様書無しさん:01/10/13 01:34
>>783
パクリっつーか あの詩があまりにも真理に近いので
文学的な日記をHPで書いていてちょっと有名な女性のBBS
に某Lispプログラマーの詩として紹介させてもらった。
そのリアクションが>>782だ。
この板には、とにかく感動させられる。
785仕様書無しさん:01/10/13 01:41
でもプログラマーに必要なのは論理学だ
哲学なんて必要ない・・・
と思いつづけてきた。Lispを知るまでは。
786仕様書無しさん:01/10/13 01:44
俺はプラトンマンセーだが、言語レベルでは哲学は必要なし。
対人関係では勉強になると思うけど。
787他人のふり:01/10/13 01:47
Lisperにこんなイタい奴しかいないとは思われたくない。。
788仕様書無しさん :01/10/13 01:54
訳注りすぱ、逝ってよし
789仕様書無しさん:01/10/13 03:47
質問。
Lispの関数型言語らしからぬところってどこ?
790仕様書無しさん:01/10/13 04:26
progn
setq
791仕様書無しさん:01/10/13 07:50
そんな事より聞いてくれよ>>788
ム板まかせた

後、関数1個返しとく。
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (    )  \_____
  | | |
  (__)_)
792今日からBASICER:01/10/13 08:14
>>787
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエダケナー
  (    )  \_____
  | | |
  (__)_)



>>790
今日 set!って言う呪文を見たんだけど
setqと同じなんですか?
793仕様書無しさん:01/10/13 08:40
>>792
schemeのsetq
794仕様書無しさん:01/10/13 12:59
Ruby関係者立ち入り禁止!!
795実は787=790:01/10/13 13:27
>>792
SchemeとLispの区別つかないやつの相手した私がヴァカでした。
796仕様書無しさん:01/10/13 13:42
つくよSchemeは方言ぶりばりだもん
だからって自分を卑下する事無いじゃん
しかも他人まで巻き込んで。
>Lisperにこんなイタい奴しかいないとは思われたくない。。
             ↑
           これの事ね!
797仕様書無しさん:01/10/13 13:51
>>786が答えを予言してるじゃん
798794:01/10/13 13:57
>>795
ム板を荒らすRuby厨房が居るので警告しただけで
貴方に言っている訳では無いので、くれぐれも誤解の無い様に。
799Led Zeppelinカコイイ:01/10/13 18:04
GOTO 775 : PRINT "またみんなマターリするようにデバッグするのだ"
800仕様書無しさん :01/10/13 23:13
カントの言う分析判断している限りじゃどこまでいっても哲学なんて
出てこない。出てきたとしたらそれはすでに白旗あげているようなもの。
だから数学とか計算機の人が哲学を考えることはない。
人として考えることはあったとしてもそれはすでに関係のないもの。
801Tamitu:01/10/13 23:42
>>800
同意
哲学→問題を生産する厨房学問
論理学→問題を解決する学問
802仕様書無しさん:01/10/14 00:46
結局、LISPとSchemeってどっちがいいんですか?
動的/静的スコープ派閥争いになりますか?
803仕様書無しさん:01/10/14 00:49
>>801
>哲学→問題を生産する厨房学問

なんだかな〜。
まぁ、いいけどさ。
804仕様書無しさん:01/10/14 00:59
800 補足、というより私の考え方

ちなみに分析判断、総合判断という分け方に関してだが
いわゆる理系 ---全ての人がそうあるべき!--- に属する人は
そんな枠組みすら分析判断で考えるのが正しいのです。
安易に無関係なタームを持ち込むべきではない。

それでも残るのが倫理的な事柄に関して。これを分析判断するべき
などと言ったところで態度を迫られる状況というのはやはり残る
(分析が完了してませんなどという言い訳は通用しない状況)。

ここで初めて哲学が出てくるんじゃないか?
あらかじめ考えておくことは考える(分析判断)。
だがしかし万能ではない人間は全てにあらかじめ答えを
用意しておくことができない。
にも関わらずある態度を決め込む時が必ずある
(たとえば今回のアメリカの戦争についてとか)。
そこでどうしようもなく哲学、人文的なものが要請される(総合判断)。


カントの言う総合判断って学説としてどう理解されているのか
知らないけど、形而上学的なものとかってなるのかな?
間違ってたらすみません。
でも私自身はそういう意味でよりも時代状況に依存した倫理みたいに
考えます。そしてそれは人が生きている以上避けられません。

分析、総合を文系、理系のように人のタイプや学問分野のようなものに
置き換えるのはどうかと思いますが、このような理由で無くならない
ものだと思います。

非歴史的な哲学なんて要らないとさえ思ってます。
それは全て上のように分析判断でやるべきです。
ですがそれが歴史的な考えすら必要としないということにはならない。

スレ汚してすみません。どうしても書かずにはいられませんでした。
805仕様書無しさん:01/10/14 01:08
>>804
哲学者は「智を愛する人」とか言われるけど、
倫理レベルだけでなく、真理を求めてる学問だと認識してます。

特に、時代に依存するということは絶対にないです。
つーか、哲学を誤解してるところがあると思われ。(俺も詳しくないけど)

ちなみにワインバーグは、
「優秀な人材は皆、合いの子であった」と言ってます。
理系偏重もどうかと思われ。
806仕様書無しさん:01/10/14 01:31
哲学、とかいって十把一絡げに言われても。
なんとなく自分の中にある哲学というものに文句をつけても仕方ないです。
807仕様書無しさん:01/10/14 01:35
>>804
誤解してると思う。
カントとか近代の哲学者が言ってるのは、たとえば、
1+1から2という答えは自然とは出てこないよ、
みたいなメタレベルの論理が多いよ。
分析判断の根拠を分析判断によって得ることは可能か?
っていう再帰構造に終了条件はあるのか、とか。

最近の「思想」って呼ばれるようなやつは
804さんが考えてるようなものが多い。
808仕様書無しさん:01/10/14 01:37
>>805 >>806
別に哲学の定義がどうなっているのかとかは私自身はどうでも
いいです。もし私の言葉の使い方が間違っているのなら、
哲学という言葉を別のものに置き換えても構いません。

ただ理系だから人文的(私にとっては倫理ってことになります)
なことに無関心でいいんだとかいうような
意味のことが言われると、ちょっと疑問をもちます。
ここのスレにはそんなことは書いてないですが、、、

また人のタイプ分けに理系文系を持ち出すのは人の分類として
言われているうちはいいですが、人としての責任が問われる
ようなところでも言われているような感じがするので嫌いです。

あまりにもスレ違いだし、自分も足りないところだらけなので、
もう書きません。
809Tamitu:01/10/14 03:15
>>808
Lispに置いては、この種の議論も時には必要かも。
人工知能と言うお題名目をかかげちゃった訳ですし
オブジェクトレベルな物は、全て実現出来る事も
証明してしまった訳ですし。
ただメタレベルとなると
>>775 です。
810Tamitu:01/10/14 03:26
>>803
哲学には魂があると言いますがコンピューターに魂があるか?
と言う事です。
811Tamitu:01/10/14 03:33
聖書に出てくる永遠の肉体ってロボットかもね。
812仕様書無しさん:01/10/14 03:53
ニーチェの最後の人間ってAIかもね
813Tamitu@basic厨房:01/10/14 07:37
ム板は別件で盛り上がっているのでqa2.lspでこれから
やらなくては、ならない事 こちらに書かせて頂きます。
1.)ストレスの関数化
現段階では、This is a penを覚えたコンピューターは
何度 Is this a pen と問いかけても This is a pen と回答
して来ます。
しかし人の場合は、どうでしょう?
だんだんストレスが、溜まってきます。
先日中東で釈放されたイギリス人記者も何度も同じ尋問をされて
精神的に極限状態になったと証言しています。
気分の波って単純なsinカーヴで擬似的に表現出来るかも
知れませんが、人間の気分って もっと意外性があると
思うんです。
今まで物静かだった人がいきなり切れたり
これらは、単純に乱数で表現出切るものでしょうか?
ストレス要因は複数存在すると思うんです。
まず第1段階として何度も同じ事を質問された
コンピューターは(Thanks, but no more for me)位 言い返して来る物に
なればと・・
(fuck you)でいっか(雑)
2.)言語意識と非言語意識
すいません 寝ます
814仕様書無しさん:01/10/14 08:43
basic厨房はわき見してないでLispをちゃんとやれ
Sure ^o^/
816BASICER:01/10/14 10:08
(defun sir ( )
(prog (s)
(setq match-flag nil)
(repeat (setq s (get-sentence))
until (eq (car s 'Bye)
(process s))
(return 'Good-bye)))
(defun get-sentence( )
(prog (s)
(repeat (setq s (cons (read) s))
until (memq (car s) '(! ?)))
(return (reverse s))))
(defun process (sentence)
(process-1 sentence rule-list))
(defun process-1 (sentence rules)
(prog (resp)
(cond ((repeat
while rules
until (setq resp (apply-rule (car rules) sentence))
(setq rules (cdr rules)))
(eval (cons (function prin3) resp))
(prin3 < >))
(t (prin3 Statement from not recognized
< > < >)))))
これXLispでいけるかなぁ?
817BASICER:01/10/14 14:17
ふと思ったんだけどLispって使いたい関数が
後から宣言出来るのが
(。A。)馬ー
818仕様書無しさん:01/10/14 20:02
上から順番に見ていって、なければ下まで探しにいくの?
819仕様書無しさん:01/10/14 20:29
>>817-818
ちっげーよ!
重要なのはさぁ、シンボルなわけよ。
シンボルってのは、ユニークなんだよ。
なんでユニークなのかって、考えたことあるか?
820BASICER:01/10/14 23:53
いや、そう言う概念的な事じゃなくてタイピングするのは
上から下じゃん。
821仕様書無しさん:01/10/15 00:35
>>820
readとinternを知れ

> タイピングするのは上から下じゃん。

You're a real PC-style BASICER, isn't it?
822BASICER:01/10/15 00:47
I want to PC-style TRUE LOL
823仕様書無しさん:01/10/15 00:55
変わった人達だ。:^)
824仕様書無しさん:01/10/15 01:58
``All your base are belong to us.''
825BASICER:01/10/15 05:09
>>823 was C++ programmer.
But it has aleady been lisper. LOL
826仕様書無しさん:01/10/15 05:28
``it has aleady been lisper.''
827仕様書無しさん:01/10/15 05:38
OOってLisperの人が見たらどう思うんだろう。
なんかあいまいさ満点なんだけど、こんなの許せるの?
828仕様書無しさん:01/10/15 05:45
どこがどうあいまいさ満点なの?
829BASICER:01/10/15 13:03
>>818
CやPascalみたいな手続き型言語の副作用
だったようです。
リハビリせねば。。
830仕様書無しさん:01/10/15 14:46
>>827
CLOSはどう?
831BASICER:01/10/16 09:10
>>827
一般的 Programmerに、その疑問が存在するのは分からないでも無いが
曖昧が、許せない と言うのは どうか?
確かにコンピューターは00000000と00000001の世界かも知れないが
人間の脳だって、突き詰めれば+イオンと−イオン
832仕様書無しさん:01/10/16 11:52
CLOSって曖昧じゃない?
(method1 arg1 arg2 arg3)
っていう呼び出しを見ても、どのメソッドが実行されるかはわからない。
誰か他の人が後から、よりspecificなmethod1を定義してるかも。
833仕様書無しさん:01/10/16 12:45
>>832
根本的に理解してないな。
834仕様書無しさん:01/10/17 02:22
>>832
まあ、CLOSはカプセル化やアクセスコントロール考えてないからな。

予想外のeffective methodが実行されて頭くらくらしたり、しらん
うちに他人が書いたコード壊してたりがしょっちゅうなのは確かだ
が、曖昧というのはちと違うぞ。あれは制御不能というのだ。
835仕様書無しさん:01/10/17 04:14
>>832
っつーか構造体もカプセルも要らん
836仕様書無しさん:01/10/18 10:53
>>830
CLOS=精神分裂症になったコンピューター
837仕様書無しさん:01/10/18 12:31
>>834
つーか、カプセル化やアクセスコントロールのあるOOPLは、CLOSで書くのだ。
ただ、誰もやらなかったけどな…
838仕様書無しさん:01/10/19 03:03
>>837
まあ、死んだCLOSの事なんか忘れて、SchemeのOOをどうするか
考えた方が有意義と思われ。今度は使えるやつにしよー。
839仕様書無しさん:01/10/19 11:11
>>838
カッコ系でOOって
generic-function(=CLOS そのままapply可。)
message-passing( そのままapply不可。メソッド抽出すれば可。)
ぐらいしかないと思うんだけど。
840仕様書無しさん:01/10/19 13:22
>>839
あとは
class-basedかprototype-basedか
setter, getterを自動定義するか
MOPをどうするか
等々という選択肢があるんでは。

それより、Schemeってモジュールとかパッケージとか
どういう提案があるの?
841仕様書無しさん:01/10/19 20:54
>>840
>それより、Schemeってモジュールとかパッケージとか
ほとんどlispと同じ。そこに新しい概念は無い。
842仕様書無しさん:01/10/31 01:13
私はLISP初心者で現在勉強中です。
GnuPGという暗号化のソフトを使っているのですが
その暗号化するときの動作である
SEMIファイルのpgg.elというファイルがどういう動作を
しているのか詳しく知りたいのですが、
誰か詳しい方、教えてくださる方おられますか?
よろしくお願いします。
843仕様書無しさん:01/10/31 01:19
だからここじゃねえっての。
UNIX板のEmacsスレにでも逝けよ。
844仕様書無しさん:01/10/31 01:54
>>1
NaughtyDogに就職すれば、LISPでゲームが作れるぞ。
845842:01/10/31 01:59
>>843
あっすみません。
ありがとうございます。
846仕様書無しさん :01/10/31 02:07
847仕様書無しさん:01/10/31 02:16
もう新日鉄にもAllegro Common Lispサポートできる人間がいないそうだ。
848仕様書無しさん:01/10/31 03:08
>>847
関係ないが、10年後には「もう新日鉄にもLinuxサポートできる人間が
いないそうだ」とか言われているのかなぁ
849仕様書無しさん:01/10/31 10:33
>>821
どうでもいいことだからsageで書くけど、
You'reではじまる付加疑問はaren't you?でおわるべきだろう。

人を呪わば穴二つ。
850仕様書無しさん:01/11/10 12:31
((((^∇^;
851デフォルトの名無しさん:01/11/14 04:35
age
852 :01/11/14 08:09
853仕様書無しさん:01/11/27 21:25
age
854仕様書無しさん:01/11/28 01:32
LISP と Smalltalk の関係を教えてください。
オブジェクトにメッセージを送信するような表現があったりするのでしょうか?
それとも単にインタープリタの実装の参考にした程度でしょうか?
Smalltalk が好きだから LISP も勉強してみたいっていうのは邪道ですか?
855仕様書無しさん:01/11/28 09:47
え?新日鉄って、まともなプログラマーがいたの?
856仕様書無しさん:01/11/28 09:47
>>854
邪道ではないだろう
857山神:01/11/28 11:34
>>854
漏れが大暴のときは
(send オブジェクト メソッド 引数...)
#send は funcall でも可
だったが、今は知らない。

参考:超長文
ttp://www.franz.com/support/documentation/6.1/doc/flavors.htm
858仕様書無しさん:01/11/29 01:05
PaloAlto には Lisper が多かったとか?
859Kusoboke Youichi:01/12/04 12:12
age
860仕様書無しさん:01/12/08 08:12
(defun fact (n)
(if (= 0 n)
1
(* n (fact (- n 1)))))

(fact 100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
861仕様書無しさん:01/12/16 19:57
Windows で GUI が使えてコンパイラ付きの Lisp は、Allegro Common Lisp しか
無いんかのぅ? ACL は高くて飼えん。
862仕様書無しさん:01/12/16 21:35
863仕様書無しさん:01/12/23 05:56
このすれ、終わったわけじゃないよね?
864仕様書無しさん:01/12/23 05:59
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−ただいまをもって終了しました−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−ありがとうございました−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
865仕様書無しさん:01/12/23 06:36
激しく再開!!!
866仕様書無しさん:01/12/30 05:49
CAD のカスタマイズ用言語としてのLISP どうよ?
漏れ的には糞
LISP 自身が悪いのではない気がするんだが....
867仕様書無しさん:02/01/08 10:43
まだあったのか
868仕様書無しさん:02/01/10 16:49
LISPあげ
869仕様書無しさん:02/01/21 17:49
1は立派な社会人になったのか?
870仕様書無しさん:02/02/07 21:56
age
871名無しさん@1周年:02/02/12 00:21
>>94
ソケットプログラミングできるようになったか?
おれは11月号(去年のやつな)トランステックの
スクリプト特集の記事で勉強してある程度書けるように
なったぞ。

いったいお前4年もなに勉強してきたんだよ。
おれなんてまだ初めて2ヶ月ぐらいだがもう
ある程度書けるようになったぞ!
872仕様書無しさん:02/02/12 00:36
>871
書いててムナしくないか?
873仕様書無しさん:02/02/17 23:17
随分昔の奴に回答してるな
1年以上前だぞ。
874age:02/03/27 22:31
激しくage
875仕様書無しさん:02/03/28 00:20
懐かしいスレがageられたなぁ
まぁこのスレのせい(お陰?)でλマンセーになってしまったが…
876仕様書無しさん:02/03/28 00:23
1は今何をしてるのか物凄い気になる
8771:02/03/28 00:47
結局家業(歯医者)を継ぐ事になったんで
今のところプログラムは趣味でしかやってませんねえ。。
878仕様書無しさん:02/03/28 01:33
そういう落ちだと僻む人が大量にいそうだなぁ
879仕様書無しさん:02/03/28 10:21
おぉ1さんハケーン!
Functional dentistなんてなかなかいませんぞ.
まぁ悔いが残らない人生であれば,それでいいんじゃない?
880仕様書無しさん:02/03/28 15:43
>>877
歯医者かよ。

水道水にフッ素入れて
歯医者連中を失業させたれ。
881仕様書無しさん:02/04/19 15:49
Allegro LispをDLしたんですがFranz社から届いたPasswaardが
壊れていました。
他にCommon Lisp準拠のFreeの使えるLispの落ちているところを、
どなたかご存知無いですか?
882仕様書無しさん