- 1 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:10]
- 過去スレ
Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/test/read.cgi/tech/1002584344/ Part3: pc.2ch.net/test/read.cgi/tech/1008220265/ Part4: pc.2ch.net/test/read.cgi/tech/1016211619/ Part5: pc3.2ch.net/test/read.cgi/tech/1023091882/ Part6: pc3.2ch.net/test/read.cgi/tech/1031560687/ Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/test/read.cgi/tech/1058263391/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ 前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、 標題にCommonLispと付けておきました。 Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも 稀なので問題はほとんどないかと思います。 関連リンクは>>2-10あたり
- 710 名前:デフォルトの名無しさん [04/06/27 12:26]
- knilって何ですか?
(directory-fold: www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_272.html#SEC299
- 711 名前:デフォルトの名無しさん mailto:sage [04/06/27 13:25]
- >>710 特に意味がない。
(fold KONS KNIL LIST ...) (SRFI1) が元ネタ。2つの引数を持つ プロシージャを何度も呼ぶとき、第2引数の初期値として使われる。 多くの場合、KONS として cons のような 関数を使い、KNIL として '() が使われる。
- 712 名前:デフォルトの名無しさん [04/06/28 14:23]
- chezのコンパイラについて御意見を聞かせてください。購入しても
バイナリのみのライセンスですよねぇ(いくらするんだろう)? >chezer様
- 713 名前:デフォルトの名無しさん mailto:sage [04/06/28 22:44]
- >>712
個人向けの販売はしてないらしい。 $9000とか、学校向けでも$4500もするんだもんな。 Kent教授に嘆願書でも出さないか?
- 714 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:04]
- >>713
それでもずいぶん安くなったのではないですか? ACL もずいぶん安いライセンスも出るようになったから、Chez も今後、 期待したいですね。 下は、2年前の話。 LISP Scheme Part6 pc3.2ch.net/tech/kako/1031/10315/1031560687.html 835 名前: デフォルトの名無しさん 02/11/26 03:59 Chez Scheme 6.0の見積もりを取ったが、いやはやあんなに高いとは。 マシン・タイプごとに24,500ドル。サポートが1機種 年間1,350ドルだと。 それほどの価値があるソフトなのか???
- 715 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:09]
- ACL アカデミックとかじゃなくて普通に商用に使うために買うといくらするの?
- 716 名前:デフォルトの名無しさん mailto:sage [04/06/29 02:30]
- このスレの Part 8 で紹介されていた URL に $599 という価格があるんだけど、
www.franz.com/products/packages/ これって、アカデミック・ディスカウントなの? そうは思ってなかった。 教育関係なら、ここからさらに割り引かれるのかと思ってました。 ご存知の方おられませんか?
- 717 名前:デフォルトの名無しさん [04/06/29 08:23]
- 先日のFranzセミナーでもらった価格表によると…
Windows/Linux/FreeBSD/MacOS X版 Professional 750,000 (395,000) Enterprise 1,400,000 (795,000) Platinum 2,000,000 (895,000) UNIX (Sun, IBM, HP, Compaq)版 Professional 1,300,000 (520,000) Enterprise 2,000,000 (1,040,000) Platinum 2,750,000 (1,200,000) …高い… orz
- 718 名前:717 [04/06/29 08:24]
- あ、括弧の中はアカデミック価格ね。
- 719 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:28]
- 俺はソースネクストが1980円で売り出すのを待つよ。
- 720 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:38]
- 括弧を無くして初心者にやさしい構文になったAllegro CLパーソナル版
1,980円!
- 721 名前:デフォルトの名無しさん mailto:sage [04/06/29 11:58]
- >>717-718
ありがとうございます。 業務システムなら千万単位の金が動くのは当たり前なので、そういうところが 売り込みの対象なのでしょうね。 SUN の Java みたいにただでばら撒いてもらえるとありがたいけど、これを 売って会社を成り立たせているから、市場の少ない段階ではおいそれと値下げも できないし。 考えてみたら、Java がタダでばら撒かれているのがすごく不思議な気がしてきた。
- 722 名前:デフォルトの名無しさん mailto:sage [04/06/29 12:37]
- インタプリンタでさえF1マシンのように速いのにコンパイラは
どれ程のものだろうね。個人的にはchez(petite)で EdwinみたいなEmacs互換のエディタがあればいいなぁ。 そういえば奥村先生の辞典にあるメルセンヌ数(素数)判定の プログラムをpetiteで再実装したらCコンパイラ(gcc)のコードより かなり速かった。…やっぱpetiteインタプリンタが内蔵された エディタが欲しいなぁ。doctorの腕も上がるかもねww
- 723 名前:デフォルトの名無しさん [04/06/29 15:23]
- Gaucheのテキストツリー構造を見ています。仕様の資料ってありますか?
(use text.html-lite) (html:html (html:h1 "TITLE")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("TITLE") #2="</" h1 #3="\n>")) #2# html#3#) (html:html (html:h1 "タイトル")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("ツタツイツトツδ・) #2="</" h1 #3="\n>")) #2# html #3#)
- 724 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:01]
- May the source be with you.
- 725 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:02]
- happy hacking
- 726 名前:デフォルトの名無しさん [04/06/29 18:26]
- Windows版のLispってありませんか?
- 727 名前:デフォルトの名無しさん mailto:sage [04/06/29 18:40]
- ググれ
- 728 名前:デフォルトの名無しさん mailto:sage [04/06/29 19:02]
- ググった
- 729 名前:デフォルトの名無しさん mailto:sage [04/06/29 21:38]
- >>721
petite の方はただで配ってるし、プロプラなアプリに組込んで使っても問題無い感じ。 ところで、↓この chez の方の src.rpm ってソースコード丸々入ってるんですか? ttps://www.cs.indiana.edu/chezscheme/iu/
- 730 名前:デフォルトの名無しさん [04/06/30 00:52]
- >>726
Allegro CLのWindows版があるよ。
- 731 名前:デフォルトの名無しさん [04/06/30 11:47]
- >>724-725
了解しました (文字化けは、文字コード設定だけの問題でした)
- 732 名前:デフォルトの名無しさん mailto:sage [04/06/30 22:13]
- >>729
.aしか入っとらん。 そんなに世の中甘くないぞ
- 733 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/07/01 15:52]
- Gaucheのマニュアルを見ているんですが、なぜ戻り値の型が記載されていな
のですか? 下のような形が標準であって、戻り値の型は必須になっていない です。Scheme的な流儀? 調べてみると、stringが返ってくるのか、portが返ってくるのか等々、判断 しにくいです。 ex) Function: read-block nbytes &optional iport ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_101.html#SEC105
- 734 名前:デフォルトの名無しさん mailto:sage [04/07/01 16:37]
- 釣りか?
吊りなのか?
- 735 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:13]
- >>733
srfi とか、あるいは(scheme じゃないけれど)clhs みたいな フォーマットで書いてほしいって事でしょうか。 と、解釈してみます。
- 736 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:39]
- >>733
MLやWiLiKiでshiroさんにきいてみなよ。 即効でレスしてくれるぞ。
- 737 名前:デフォルトの名無しさん mailto:sage [04/07/01 22:18]
- >>733
文字列を返すこともあれば、eof オブジェクトを返すこともあるわけで、 一つの型には決められないからじゃないのかな。 そこらへんをうまく扱えるいい表記があればね、と無責任モード。
- 738 名前:デフォルトの名無しさん mailto:sage [04/07/02 00:40]
- Schemeにも型表記の取り決めがあればいいね。
型が変化しない関数は組み込みを含めてありえるわけだし。 CommonLisp族のdeclareディレクテイブはどうなんだろう。
- 739 名前:デフォルトの名無しさん [04/07/02 18:38]
- 型なんかが必要な人は頭が型いんです。
- 740 名前:デフォルトの名無しさん mailto:sage [04/07/02 22:07]
- OnLisp 邦訳、Franz のサイトからリンク張ってあるね。
- 741 名前:デフォルトの名無しさん mailto:sage [04/07/02 23:36]
- >>740
すげぇな。ほんとだ。 あとは訳が完成するのをまた〜りまつこととしますか。
- 742 名前:デフォルトの名無しさん mailto:sage [04/07/03 01:33]
- 訳が完成したら出版してほしいなあ。
翻訳の完成度高いし。
- 743 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 04:13]
- そんなことより >>740 -- >>742 よ,ちょいと聞いて下さいよ.Lispとあんまり関係ないけどさ.
今日(昨日),ACMプログラミングコンテスト予選があったんです,ICPC国内予選. そしたら各大学3チームしか選ばれないのに,東大から19チームも出てて絶望なんです.もうね,ア(ry で,1年生(教養前期)3人のチームの中にうちのサークルの新人がいたんで, 「ま,選抜はされないだろうけど精一杯やるさ.きみっちもがんばれよ」と先輩風吹かしてみたら, なんと彼ら qoo_ が東大3位,全国4位(まだ暫定)で選抜されるっぽいんです. ttp://www.logos.ic.i.u-tokyo.ac.jp/acm-icpc/standings.html そこでまた(全国86位の自分に)ぶち切れですよ. 偉そうな顔して何が,探索空間広杉,だ. 自分はJavaでO(n^6)の土方コーディングしかできないのちゃうんかと. まあ私,flatlineは,分数の単位分数による分解をきちんと解きなさいってこった. ☆ ☆ ☆ なお使用可能言語はC, C++, Javaの3つ,時間は3時間15分でした. それに対してICFP www.cis.upenn.edu/proj/plclub/contest/ の方は任意の環境が利用でき, 時間も数日単位です(チームで寝る奴と書く奴を分担したり). 例年OCamlとかが人気のようですが,Common Lispも数チームずつ選んでいるようです. これを読んでいる学生の方,どっちでもいいですが参加してみてはいかが. 優秀な方に対しても,私みたいな orz に対しても,よい体験になると思います.
- 744 名前:デフォルトの名無しさん mailto:sage [04/07/03 04:51]
- これって、参加者のコード見れるの?
- 745 名前:デフォルトの名無しさん mailto:sage [04/07/03 12:24]
- >>743
なんかこう何とも言えないでつな(汗 C, C++, Javaてのがまた。来年あたりC#とかが追加されてみたりすんのかねぇ? Lispでごりごりなら743もゴリゴリ逝けたはず? まぁ、学生さんたち頑張ってくれ。
- 746 名前:デフォルトの名無しさん mailto:sage [04/07/03 15:21]
- >>726
SBCL win32 port のパッチが公開されてるよ。
- 747 名前:O....TZ@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 15:30]
- 見られません < 提出済みコード
審判システムが終了してるので,感想戦やろうにもなかなか難しい. まぁ大きなコミュニティに属してる利点ってのは, そういうときでも「そのコードがacceptされたチームの人」「その場で(!)解ける人」が 身近にいるってことなんですが. ICPCはどの言語だろうと本質的な手間は変わらない問題が多いぽ. 手続的言語にしぼってるのは,それなりの意図でしょう(Pascalが加わる場合も). まぁ「Lispだとこうなる」ってのも面白いのでちょっと過去問を解いたことがありますが.
- 748 名前:デフォルトの名無しさん mailto:sage [04/07/03 17:33]
- 絶対に declare しておきたい場合を教えてください.
cliki に置いてあるのを参考にしてみるも,全部に型を書いてあるんです. ここまで頑張るのでは大変です. 効果が大きいとか小さいとかは,どうしたら分かるのでしょうか.
- 749 名前:デフォルトの名無しさん mailto:sage [04/07/03 20:22]
- 絶対必要なのはプロファイルをとる事。なんでかっつーと、
効果がわからないって奴の大半はボトルネックをきちんと 測定していないから〜。 型指定はその後。一番良く呼ばれる関数のインライン化、 速度なら多用される計算関数、頻繁にアクセスする配列、 メモリ量ならサイズの大きい構造体や配列、クラス等で の型指定かなぁ。きちんと Profiling してるなら効果 もそれなりに測定できるはず。後は disassemble するとか。
- 750 名前:デフォルトの名無しさん [04/07/03 20:56]
- ヤッターマン
- 751 名前:デフォルトの名無しさん [04/07/03 20:57]
- コーヒー
- 752 名前:デフォルトの名無しさん [04/07/03 20:57]
- ライター
- 753 名前:748 mailto:sage [04/07/04 16:05]
- >>749
ありがとうございます.こんなに簡単に分かるものだったなんて初めて知りました. declare 前後の効果をはっきり知るために declare 式を一斉に on, off したいのですが,コメントにするのでは大変です. C の ifdef のようなものがあると便利なのですが, こういうときに役立つ方法を教えてください. *feature* に :declare-shiru を push して #+ 等を使うのは普通ですか?
- 754 名前:デフォルトの名無しさん mailto:sage [04/07/04 22:51]
- 関数として扱え,setf の 1 番目の引数でも使える accessor とは何なんでしょうか.
例えば,色々なものをごちゃ混ぜにしたリストを複数の関数で扱うとき, (defun data1 (lst) (cdr (nth 3 lst))) (defun data2 (lst) (cdr (nth 5 lst))) とやると setf でアクセスできなくなりますし, (defmacro data1 (lst) `(cdr (nth 3 ,lst))) (defmacro data2 (lst) `(cdr (nth 5 ,lst))) とやると関数を引数にするものに渡せません (:key など). こんなとき,みなさんはどうやっていますか?
- 755 名前:デフォルトの名無しさん mailto:sage [04/07/05 06:28]
- こんなんじゃなかったっけ? あと適当に defsetf とかで検索しておくれ。
(defun kar (kons) (car kons)) (defun (setf kar) (kons obj) (rplaca obj kons)) > (setq data '(1 2)) (1 2) > (kar data) 1 > (setf (kar data) 3) (3 2) > data (3 2)
- 756 名前:754 mailto:sage [04/07/05 20:02]
- >>755
全く知りませんでした.ありがとうございます. CLHS を一から読むと,まだ知らないことがゴロゴロ出てきそうです.
- 757 名前:デフォルトの名無しさん mailto:sage [04/07/05 21:18]
- あ、上のでも一応動くんだが
(defun (setf kar) (obj kons) (rplaca kons obj)) だった。
- 758 名前:デフォルトの名無しさん mailto:sage [04/07/06 00:23]
- あら、gencgc って SPARC にも対応してたんだ。CVS 追っかけてなかったから知らんかった。
次は MP かしらん(ワクワク
- 759 名前:デフォルトの名無しさん mailto:sage [04/07/06 18:29]
- (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
(っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
- 760 名前:デフォルトの名無しさん mailto:sage [04/07/07 14:12]
- そういうの、大人はあまり面白がってくれないよ。
- 761 名前:デフォルトの名無しさん mailto:sage [04/07/07 17:12]
- 無名関数のみで再帰するシンプルな方法を考えてみました。
まず、リストの長さを測る関数 my-length を作ってみる。 (define (my-length list0) (if (null? list0) 0 (+ 1 (my-length (cdr list0))))) (my-length '(1 2 3 4)) ==> 4 それを無名関数だけで書き直す。要するに、自分と同じ形の関数を 引数に取って、それを再帰の代わりに呼び出すのである。 ((lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) (lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) '(1 2 3 4)) ==> 4 これを理解すれば、Yコンビネータを理解することの助けになると 思ったんですが、いかがなものでしょうか?
- 762 名前:デフォルトの名無しさん mailto:sage [04/07/07 18:34]
- 前スレあたりにいくつかあったよ
- 763 名前:デフォルトの名無しさん mailto:sage [04/07/07 19:19]
- >>762
ありがとうございます。なるほど、確かに前スレにありました。 見たはずなのですが、当時は理解できなくて読み飛ばしていました。 今『Scheme 手習い』の9章を読んだばかりで、 「この Yコンビネータは洗練されているけれど、分かりづらい。汎用性をなくせば、 もっと分かりやすい再帰ができるのじゃないか?」 と思ったのですが、すでによく知られていることなのですね。すみません。 以下は前スレの引用ですが、眼からウロコが落ちる思いでした。 ----------------------------------------------------------- 437 名前: デフォルトの名無しさん 03/12/12 23:03 lambdaだけで回すコードは、カンの鋭い人なら、相互的な再帰処理を 書いている内に自然と気付くかもしれない 結局は、以下のより単純にした式 ((lambda(x)(x x))(lambda(x)(x x))) この式の応用だから
- 764 名前:デフォルトの名無しさん mailto:sage [04/07/08 02:12]
- このスレの話題と呼応する様に、Bill Clementson のブログに Java と CL の連携の話が出てるね。
- 765 名前:デフォルトの名無しさん mailto:sage [04/07/09 14:29]
-
hobbitとBiglooってどう違うん?
- 766 名前:デフォルトの名無しさん mailto:sage [04/07/09 16:49]
- >>743 flatline 氏
on Lisp の邦訳の 148ページ目に、TeX のタグが残っていますよ。 ----------------------------------- Common Lisp のこのコードは, \begin{verbatim} (let ((f #’(lambda (x) (1+ x)))) (funcall f 2)) \end{verbatim}
- 767 名前:デフォルトの名無しさん mailto:sage [04/07/10 00:16]
- >>765
hobbit は r4rs だし、末尾再帰の最適化もされないんじゃなかったっけ? Bigloo がどうだか知らないけど、hobbit は Scheme で書かれてる。 Scheme で標準的な FFI のライブラリってありますか? C の struct とか union も Scheme から扱えると嬉しいのですが。
- 768 名前:デフォルトの名無しさん mailto:sage [04/07/10 02:09]
- > Scheme で標準的な FFI のライブラリってありますか?
SRFI でもめてたっけなー
- 769 名前:デフォルトの名無しさん mailto:sage [04/07/10 12:42]
- r5rs の 7.3 Derived expression types に書いてある、
case の定義について質問です。 template の最初の clause (+ の部分) を省いたら、 もとの定義とどういう違いが生まれるのでしょうか? それとも省略しても変わらないのでしょうか? (define-syntax case (syntax-rules (else) ((case (key ...) ;+ clauses ...) ;+ (let ((atom-key (key ...))) ;+ (case atom-key clauses ...)));+ ((case key (else result1 result2 ...)) (begin result1 result2 ...)) ((case key ((atoms ...) result1 result2 ...)) (if (memv key '(atoms ...)) (begin result1 result2 ...))) ((case key ((atoms ...) result1 result2 ...) clause clauses ...) (if (memv key '(atoms ...)) (begin result1 result2 ...) (case key clause clauses ...)))))
- 770 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:29]
- >>769 key が複数回評価されてしまう。値が変るかもしれないし、
変な副作用が出るかもしれない。
- 771 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:33]
- 省略するとKEYが複数回評価されてしまうことがあるな。
こんなんだと違いが出るでしょ。 (case (begin (print "foo") 2) ((0) ()) ((1) ()) ((2) ()))
- 772 名前:769 mailto:sage [04/07/10 13:42]
- >770,771
回答ありがとうございます。 理解できました。
- 773 名前:デフォルトの名無しさん [04/07/10 17:55]
- Lispに興味ある人って結構いると思うんだよね。
でも、ほとんどのユーザーがWindowsなわけで、 LispはWinユーザーにとっては手軽じゃない。 さくっとDLできて、すこっとインストーるできれば もっと流行るんじゃないかねぇ。
- 774 名前:デフォルトの名無しさん mailto:sage [04/07/10 18:38]
- 商用/フリー含めて一番多く Common Lisp 処理系が使える環境は Mac OS X だって
誰かが言ってたね。
- 775 名前:デフォルトの名無しさん mailto:sage [04/07/10 18:53]
- なんか最近は学生気分で呑気なヤシ多いよなぁ。
こちとらpetiteをbinutilsでハックラン中なのに… そろそろ寝まつか
- 776 名前:デフォルトの名無しさん mailto:sage [04/07/10 20:54]
- >>775
そもそもLispなんて仕事で使えるか? VC++やVBに疲れたプログラマが息抜きにやりたいんだろ。
- 777 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:16]
- Shiroさんは仕事で使ってるぜ。
洩れは... 「Lispならこう書ける」を基準に、脳内コンパイルしつつJava書いてる(ぉ
- 778 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:54]
- 無名クラスを乱用しないように気をつけましょうね
- 779 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:58]
- Lispって大脳皮質みたいな感じがする。
でね、運動神経ゼロなの。 Cは脊髄。
- 780 名前:デフォルトの名無しさん mailto:sage [04/07/11 00:07]
- ANSI Common Lisp を読んでいて疑問に思ったのですが、(setf symbol) が
defun の第一引数 (function name) になるって変じゃないですか? CLHS 見たんですけど、良く分かりませんでした。(setf symbol) って何を 返すのでしょうか? www.lisp.org/HyperSpec/Body/mac_defun.html www.lisp.org/HyperSpec/Body/glo_f.html#function_name
- 781 名前:780 mailto:sage [04/07/11 01:01]
- 済みません。ここを読んだら何となく納得しました。
groups.google.co.jp/groups?&th=49b3a6ce675ecc26 www.lisp.org/HyperSpec/Body/sec_5-1.html
- 782 名前:http://media.ebaumsworld.com/mariopiano.wmv mailto:mario [04/07/11 22:14]
- お前ら俺にschemeのsyntax-rulesの使い方を教えなさい
特に (syntax-rules (←この部分には何を書くのよ?→) ((パターン) (テンプレート))* ) ↑この部分 ここwww.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC42 によると「リテラル」などというご大層な名前が付いてるそうだが じぇんじぇん意味わかんねーぞ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(ていうかそもそも訳が下手じゃね?) このスレにいるスーパーハカーの皆さんは 大至急私に、リテラルの意味を教えなさい。 いや、マジで。どこにも分かりやすい説明が無くて。 あんまりバカにしないで。
- 783 名前:デフォルトの名無しさん mailto:mario [04/07/11 22:16]
- とりあえずぬるぽっておくか
(null? ぬるぽ)
- 784 名前:デフォルトの名無しさん [04/07/11 22:17]
- 厨房に荒らされてしまって、このスレももう終わりだな
- 785 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:23]
- >>784
本当に分かんないんだって! もったいつけないで教えろよ!
- 786 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:27]
- >>782
ああ、syntax-rules の説明は、R5Rs を読んでもまずわかんない。 日本語の資料に限ると、 オンラインで読める文献は >>5 に出てる「入門Scheme」以外にないと 思う。これなら何とか分かるんじゃないかな。pdf ファイル。 #www4.ocn.ne.jp/~inukai/scheme_primer_j.html 書籍だったら、『プログラミング言語SCHEME』R.ケント ディヴィグ (著) www.amazon.co.jp/exec/obidos/ASIN/4894712261 この本、原書(英語版)が Chez Scheme といっしょにフリーで配布されてる。 古い本には syntax-rules は全然載ってないから気をつけて。
- 787 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:34]
- >>785
まあ、おちつけ。 Scheme を知ってる人は大学で習った場合が多いから、一般人が独力で学ぶ場合の 苦労はあんまり共有されてないんだよ。漏れもこれを見つけるまで、マクロの書き方 わかんなくて苦労した。 ついでだけど、R5Rs はこっちの訳のほうが読みやすいと思うよ。 www.unixuser.org/~euske/doc/r5rs-ja/index.html
- 788 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:35]
- >>786さんありがとうございます
しかしそのpdfファイル文字化けしてて読めなかった(Debian sarge にデフォでついてきたviewer) あとで環境揃えて読んでおきます THX 784さんもありがとう そして785にガッ
- 789 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:36]
- >>787
ぬ?こっちも調べておきます。ありがとう
- 790 名前:784 mailto:sage [04/07/11 22:45]
- >>783に言ったんだがな・・・
- 791 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:55]
- >>788-789
だからおちつけ。少しレス番ずれてるぞ。 PDF 今読めないそうだから、いいかげんな解説をしてみる。 >>782 の (←この部分には何を書くのよ?→) だけど、 そこにはマクロの冒頭に来ない予約語を書くんだよ。 例えばマクロで cond を実装するとして、必要な予約語は cond と else だろ。 マクロの冒頭に来る予約語が cond で、それは当然 define-syntax のあとに書く。 で、(←この部分→) に書くのが else だ。マクロの途中に現れる、特別な意味を持つ シンボルをそこに書いて宣言するんだよ。 つうことは、単純なマクロならたいていそこは空欄になる。だから普通は()の中には 何も書かなくてよし。 >>790 そうか。俺も誤解してた。すまんかった。
- 792 名前:デフォルトの名無しさん mailto:sage [04/07/11 23:10]
- >>791
なるほど。それで>769が読めそう……ですね 俺は少しのレス番のずれなど気にしないぜ! それと、俺は>782,783,785,788,789だぜ。 実際厨学生だが。
- 793 名前:デフォルトの名無しさん mailto:sage [04/07/12 00:23]
- (define-syntax map-in (syntax-rules (in)
((map-in arg in lst body) (map (lambda (arg) body) lst))) これで (map-in x in '(0 1 2 3 4) (+ x 10)) => (10 11 12 13 14) となる。PythonとかRubyのイテレータに似せてみた。 in が未束縛だが、手作りの「予約語」になってる。 む、この例だと意味薄いか? r5rsマクロの「リテラル」はパタンマッチングの目印に使われるハズ。 あと、「学校で習った」だけの知識じゃマクロまで使えない学生も多いよ@灯台理情 好みでやりこんでるヤシが使うだけ。
- 794 名前:デフォルトの名無しさん mailto:sage [04/07/12 15:09]
- >>793
うーん、Lispだとイテレータはいらないよねえ。リスト操作で済んじゃうから。 個人的な見解だけど、マクロの途中に出現する予約語って、普通に関数的にコードを 書くときには、あまり使い道がないと思う。cond の else だって #t と書いても 同じだし。 call/cc で新しい制御構造を作ったりするときに、真価を発揮するのだと思う。 あと、学校で習う人が全員マクロまでは行かないのは分かる。だけど自分で先に 進むとき、周囲の人に相談できるし、教官に質問もできるでしょう?図書館にいい 本もあるし。やっぱりネットと本だけを頼りに手探りで進むのとは違うよ。 声を大にして言いたいのは、Lisp を学びたいなら、絶対学生のうちにきっちりやった ほうがいいということ。社会に出てからだと大変だもの。 私は学生の頃は Lisp をやろうなんて思わなかったんで、今、すごく後悔してる。 こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか ないんだもの。
- 795 名前:デフォルトの名無しさん mailto:sage [04/07/12 20:47]
- > 私は学生の頃は Lisp をやろうなんて思わなかったんで、今、すごく後悔してる。
> こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか > ないんだもの。 社会に出てからだっていくらでも学べる。 こんなのはやる気がない奴の言訳。 それか本当に時間のない土方プログラマかどっちか。
- 796 名前:デフォルトの名無しさん mailto:sage [04/07/12 20:57]
- 後半だけ読むと「やる気がない奴の言い訳」のようにも読めるけど、
最初から読めば、>>794氏は「社会に出てから学んでいる、やる気 のある人」だと思うな。
- 797 名前:デフォルトの名無しさん mailto:sage [04/07/12 21:06]
- 私も同感です。ハックランするときは普通に2日は寝ないです。
噂によると本田技研の野郎の中にはまともに1週間寝ないで 設計する狂人がいるらしいけど。そういえばホンダはLispで 構築したシステム(たしか外注)持ってたよね。流石だよねぇ。
- 798 名前:797 mailto:sage [04/07/12 21:08]
- >>795
- 799 名前:デフォルトの名無しさん mailto:sage [04/07/12 21:13]
- 某教授曰く
「あそこ(本田技研)に行けば確実に殺される」 らしい(実話)。
- 800 名前:デフォルトの名無しさん [04/07/12 21:33]
- 800get
- 801 名前:794 mailto:sage [04/07/12 22:04]
- なんか、煽られてるなあ。
別に愚痴を言いたかったんじゃなくて 「大学というのは Lisp を学ぶには恵まれた環境だから、学生の皆さん、どうか有効に 活用してください」 と言いたかっただけなんだよ。これは Lisp だけじゃなくて、数学とか、経済学とか、 基礎的な学問なら全部に言えることだけど。 私は物理専攻で、その頃は Lisp にほとんど興味がなかった。うちの大学には Lisp の 有名な先生がいたんだけど。社会に出てから興味を持って「ああ、もったいなかったな」 と思ったんだよ。せっかくλ山のふもとにいたのに。 wwwfun.kurims.kyoto-u.ac.jp/MtLambda.html まあ、やる気がないとか、土方とかは、たぶん当たってます、ハイ。
- 802 名前:デフォルトの名無しさん mailto:sage [04/07/12 22:23]
- やる気があろうが無かろうが、結局はその人のセンス次第
- 803 名前:デフォルトの名無しさん mailto:sage [04/07/12 23:42]
- >>802
それを最大限にフォローしてくれるのが Lisp.
- 804 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:02]
- >>801
Mt.Lambda ワロタ 今度から京大をλ山と呼ばせていただきます.
- 805 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:23]
- λ山にはリスパが居ってさ。
nilってさ
- 806 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:33]
- >>805
うまい。続きを考えようとしたけど思いつかない…
- 807 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:56]
- Yってさ再帰ってさ
- 808 名前:デフォルトの名無しさん mailto:sage [04/07/13 05:35]
- いまlambda山に棲息しているlisperって誰? 長谷川先生?
- 809 名前:デフォルトの名無しさん mailto:sage [04/07/13 14:24]
- 湯浅先生ご本人がちゃんといるよね。
www.yuasa.kuis.kyoto-u.ac.jp/%7Eyuasa/index_J.html あとは誰かしら。現役の方の報告を希望。 ついでにλ山の歌の続きも希望。
- 810 名前:デフォルトの名無しさん mailto:sage [04/07/13 18:50]
- gaucheに巣食う厨をどうにかしてくれ
|

|