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


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

CommonLisp Scheme Part13



1 名前:デフォルトの名無しさん [2005/05/12(木) 21:44:01 ]
過去スレ
Part1: piza2.2ch.net/tech/kako/987/987169286.html
Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part7: pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part8: pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/
Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/
Part11: pc5.2ch.net/test/read.cgi/tech/1091456033/
Part12: pc8.2ch.net/test/read.cgi/tech/1100229366/

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

2 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:45:39 ]
>>1
スレ立て代行して頂きまして、
どうもありがとうございました。。。

世の中、良い人も居るんだなぁ〜とチョと嬉しくなりますた。

3 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:46:16 ]
□参考リンク□

日本Lispユーザ会(日本語)
jp.franz.com/jlug/index.html
ここにかなりの情報があります。
jp.franz.com/
削るとAllegro Common Lispのページへ

プログラミング言語Scheme(日本語)
ttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html
Schemeの人はまずここを見ましょう。

Lisper への道(日本語)
ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/rakup.html
判りやすいLISP入門サイト。

Schemeへの道(日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
ここはschemeの入門サイト。


4 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:46:28 ]
□参考リンク□

日本Lispユーザ会(日本語)
jp.franz.com/jlug/index.html
ここにかなりの情報があります。
jp.franz.com/
削るとAllegro Common Lispのページへ

プログラミング言語Scheme(日本語)
ttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html
Schemeの人はまずここを見ましょう。

Lisper への道(日本語)
ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/rakup.html
判りやすいLISP入門サイト。

Schemeへの道(日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
ここはschemeの入門サイト。

5 名前:デフォルトの名無しさん [2005/05/12(木) 21:47:00 ]
慶応の授業のページ・記号処理プログラミング 2001
buri.sfc.keio.ac.jp/lisp/menu.html

Practical Scheme(日本語)
ttp://www.shiro.dreamhost.com/scheme/index-j.html
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)

Scheme Hash(英語)
okmij.org/ftp/Scheme/index.html
S式でXMLを使える様にするSXMLなど

John McCarthy's Home Page
www-formal.stanford.edu/jmc/
LISPの生みの親、J・マッカーシーのページだそうです。

Association of Lisp Users
www.alu.org/alu/home
米国のLispユーザ会

6 名前:デフォルトの名無しさん [2005/05/12(木) 21:47:30 ]
□SICP関係□

SICP(英語)
mitpress.mit.edu/sicp/full-text/book/book.html
「計算機プログラムの構造と解釈」の原書です。
全てオンラインで読めます。

計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
www.ipl.t.u-tokyo.ac.jp/sicp/

SICPの回答集
www.melt.kyutech.ac.jp/~gogogo/sicp_ex/
pluto.aurorasd.co.jp/~mkama/sicp/
www.ipl.t.u-tokyo.ac.jp/sicp/solution.root.html
www.sampou.org/scheme/sicp/answer/

7 名前:デフォルトの名無しさん [2005/05/12(木) 21:48:41 ]
□その他□

Schemeで書かれた正規表現ライブラリ
ttp://www.cs.rice.edu/~dorai/pregexp/pregexp.html

幻の「入門Scheme」
ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html
オンラインで読める

各種scheme処理系をcygwin上からビルドする方法など。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/

Bit - Implantation compacte de Scheme
www.iro.umontreal.ca/~dube/
mini-schemeよりも小さい(?)bytecode変換系

Lisp 言語処理系: CAMPUS LIsP, Lemon version
aten.aial.hiroshima-u.ac.jp/~kakugawa/clisp/index-ja.shtml
Cコードによるわずか1000行の実装

Cliki
www.cliki.net/index
CommonLispのプログラムがたくさん紹介されているのでここを当たるべし。

8 名前:デフォルトの名無しさん [2005/05/12(木) 21:49:14 ]
encyCMUCLopedia
www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/
cmucl以外でも有益なはず

CMUのLisp Repository
ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/0.html
新旧様々なプログラムが置いてある

Tiny CLOS Tutorial
home.adelphi.edu/~sbloch/class/272/tclos/tutorial.shtml

Schemix
www.abstractnonsense.com/schemix/
Linuxのkernelへのパッチで、/dev/として扱えるTinyScheme

Bibliography of Scheme-related Research
library.readscheme.org/
Scheme関連の論文リンク集

9 名前:デフォルトの名無しさん [2005/05/12(木) 21:50:32 ]
その他よさそうなリンク

awkで書かれたわずか500行のLispインタプリタ
awklispを読めばLispが理解できる
ttp://www.accesscom.com/~darius/

Emacs Lisp 2
pc2.2ch.net/test/read.cgi/tech/1068467385/

* Hotdog Scheme rover.cs.nwu.edu/~scheme/
 MS が金出してたみたい
* Bigloo www-sop.inria.fr/mimosa/fp/Bigloo/
 CLR 用のコードを吐けるようになったらしい

継続

なんでも継続
ttp://www.shiro.dreamhost.com/scheme/docs/cont-j.html
Schemeへの道:継続
www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html
継続の使い方
www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation
継続の使用法
www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html
CPS(継続渡しスタイル)の説明
www.csl.sony.co.jp/person/masui/Forum/data/20011215023622/
Kahua: 継続ベースのアプリケーションサーバー
ttp://www.kahua.org/

10 名前:デフォルトの名無しさん [2005/05/12(木) 21:51:06 ]
仕様関係)
CLtL2: Common Lisp the Language 2nd edition
www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
CLHS: Common Lisp Hyper Spec
www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html
R5RS: Revised(5) Scheme(ja)
www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html

便利な情報リソース)
The Common Lisp Cookbook: いわゆる Cookbook
cl-cookbook.sourceforge.net/

小さい実装)
SECDR-Scheme: SECD machine model に基づく実装
ttp://lily.fan.gr.jp/~kmd/adhoc/view.rhtml?n=SECDR-Scheme_woyomu
Minischeme: 1 ファイルに凝縮された Scheme 処理系
tinyscheme.sourceforge.net/minischeme.tar.gz
TinyScheme: Minischeme を色々弄ったもの
tinyscheme.sourceforge.net/
KI-Scheme, AM-Scheme, etc...
www.nifty.com/download/dos/prog/lisp/
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
www.lispme.de/lispme/



11 名前:デフォルトの名無しさん [2005/05/12(木) 21:51:34 ]
LISP Scheme Part9 (html化)
ruku.qp.tc/dat2ch/0403/01/1069594582.html

独習 Scheme 三週間
www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html
Schemeの教科書

よろずや
www.geocities.co.jp/SiliconValley-SanJose/7474/
lispの実用的な情報が色々。

12 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 21:54:42 ]
>>1-11 おつかれさまです

13 名前:前すれ995 mailto:sage [2005/05/12(木) 22:06:47 ]
すまん駄目だった。
何も書かないってのはまずかったな。
かえってストレス溜まるわ。
>1乙

14 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 22:55:58 ]
こいつらも貼っておこうぜ

Common-Lisp.net: 多くのプロジェクトがホスティングされてる
ttp://common-lisp.net/

Bill Clementson's Blog: Lisp関連の話題が中心のBlog
ttp://home.comcast.net/~bc19191/blog/

Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
ttp://www.gigamonkeys.com/book/

15 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:02:53 ]
>>13 乙です。

末尾再帰
(define fact
 (lambda (n)
  (letrec ((fact-tailrecursion
        (lambda (n prod)
              (if (= n 1)
               prod
               (fact-tailrecursion (- n 1) (* prod n)) ) ) ))
       (fact-tailrecursion n 1) ) )



上記の末尾再帰は、下記のiterationと等価。

(define fact-iteration
 (lambda (n)
  (do ((n n (- n 1))
     (prod 1 (* prod n)) )
     ((= n 1) prod) ) ) )


16 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:04:11 ]
新スレわざわざ立てずとも、
末尾再帰最適化でなんとかならんのかw

17 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:07:54 ]
継続があれば

18 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:09:10 ]
とりあえず gc しときますね。

19 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:40:23 ]
ゴミがまったくなかったらGCなんて無意味

20 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 09:23:04 ]
ゴミのないものなどない
>1 乙



21 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 20:09:25 ]
再利用できないゴミばっかだったらGCなんて無意味

22 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 22:25:15 ]
                Prolog  →       …       → Progol
              /
μPlannner→Planner → Conniver→ Scheme → Common Lisp → ISO Lisp
              \      /      ▲このスレ
                Plasma  →    →    →    → ABCL → ...

Simula67→ Smalltalk70 → … → Smalltalk80 →     …          → Java , C# (w

目的指向プログラミング   論理プログラミング            帰納論理プログラミング
積み木の世界       Actor理論               並列オブジェクト 分散オブジェクト
                                                 マルチエージェント  セマンティックWeb

23 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 02:45:27 ]
>>22は何?

24 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 02:55:24 ]
gcされなくなるので参照しないこと

25 名前:デフォルトの名無しさん [2005/05/15(日) 03:52:27 ]
2ちゃんで異様に伸びてるスレって、
大抵ネイティブ住人はとうの昔に消えて、
荒しが初期のスレの拡大再生産してるだけだって噂、本当なんだな。

ここまで荒廃してるとは知らなかった。もうこねぇよ。じゃぁな


26 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:55:18 ]
>>25は何?

27 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 04:07:19 ]
>>22>>25

28 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 04:14:59 ]
よくわかりませんが、ここに (gc) 置いときますね

29 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 10:32:03 ]
>>22
いろいろ消し過ぎ....gcのバグか?

30 名前:デフォルトの名無しさん [2005/05/15(日) 11:57:14 ]
以下の処理が実行できない理由を教えて下さい。

(define a 33)
(letrec ((c a)(a 10)) c)




31 名前:30 mailto:sage [2005/05/15(日) 12:22:26 ]
すみません。自己解決しました。

letrecで、cとaの未初期化領域が生成され、cには未初期化のaの値がはいる。
そのため、gaucheだと#undefがでてくる。

letrecの本質は、ローカル変数定義時にエラーを出さずに本体を実行するという部分にあるのですね。


32 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 12:29:16 ]
>>31
 それは違う

33 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:51:50 ]
recはrecurs-のrec

34 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 09:37:17 ]
>>31
>letrecの本質は、ローカル変数定義時にエラーを出さずに本体を実行するという部分にあるのですね。
これは違うと思う。30の例はシンタックスエラーになるべきだと思うんだが。

> gaucheだと#undefがでてくる
ということは、もしかしてgaucheだと
(define a 33)
(letrec ((c a) (a 10))
 (set! c a)
 c)
--> 10
になるのかな?
そうなるとしたら、ちょっと不味いと思うんだが....どう?


35 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 09:41:09 ]
>>34
それで10になるのは全然問題なさそうに思うんだけど、どうまずいの?


36 名前:34 mailto:sage [2005/05/16(月) 09:52:10 ]
>>35
gaucheの#undefがどういう意味で出力されているのか知らないから聞いたんだけど、もしこれがletrec全体の評価結果として出力しているとしたら、これはシンタックスエラーを無視して実行していると思えたからなんだ。
これは、cにaを束縛しようとした時点で未定義変数への参照によるエラーが発生するべきだと思うからなんだけど....
これは正しいプログラムなら実行結果は同じになるからいいんだけど、schemeの勉強に使うにはちょっと不味いんじゃないかと思ったんだ。
実際、30は勘違いしたみたいだし。

37 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 10:43:01 ]
補足:
R5RS 4.2.2 より
(letrec

38 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 10:46:37 ]
補足:
R5RS 4.2.2 より
(letrec

39 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 12:11:05 ]
>>36
エラーを出さなくてもR5RS違反ではないけどね。学習用として不親切ではあるな。



40 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 12:20:51 ]
局所変数定義 letrec使ってエラーだエラーじゃないって?
頭が可笑しい人のレスか



41 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 12:32:23 ]
letrec ではすべての局所変数が定義されてから初期化されますが、
初期化中に局所変数をアクセスするとエラーになってしまいますので注意。
すべての初期化が終わってからでないとアクセス出来ません。

letrec は、再帰関数を定義するのに使います。

(letrec
  ((fact (lambda (x) (if (> x 0) (* (fact (- x 1))) 1))))
 (fact 10))

42 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 13:15:00 ]
学習用の DrScheme でもエラーにならないね。
(letrec ((x a) (a 1)) ...) を
(let ((x 未定義) (a 未定義)) (set! x a) (set! a 1) ...) のように展開
する実装では、チェックが難しいのかな。

43 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 13:36:54 ]
エラーになる処理系ある?

44 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 16:07:24 ]
SCM はエラー出すみたい。

45 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 21:36:19 ]
>>9
>継続の使用法
>ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html

これの学生さん卒業したのかな
2005 年 4 月以降どうなるか不明と書いてある

Bill Clementson's Blog も移動するみたいだね
ttp://home.comcast.net/~bc19191/blog/index.html

46 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 22:00:06 ]
ああ。学生の頃の自分思い出して、やり切れない気持ちになった。
特にLispって研究テーマにはなりにくいよなぁ。
最近は、ソフトウェア実装屋を対象とした学部/研究科が増えてるらしいけど。

俺の友人で、どうしても哲学をやりたくて、社会人入学した香具師がいる。
まだ数年前、塾だか予備校で飯代稼ぎながら、いろいろ模索してた。
そこまで真剣に学問の道を考えるなら、きっと誰か拾ってくれるでしょ。と祈りたい(w

47 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 02:55:59 ]
どっかで見た話題だなあと思ったら、似たのが sicp の練習問題にあるね。
letlec じゃなくて internal define だけど。
mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.html#%_thm_4.19

確か r6rs では internal define と関連して letlec* が追加されるとかいう話だけど、
未束縛の変数に左から順に set! していく、て実装だったら
そっちの方がやってる事に即している感じはするな。

48 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 13:10:19 ]
r6rsって出るのかなぁ

49 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 13:17:03 ]
今議論してるんだから、出るだろ。そのうち。


50 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 22:52:50 ]
R6RSに含まれる機能は何でしょう?
おれが欲しいと思ってるのは

・名前空間
(せめてパッケージ)はぜひとも導入して欲しい。
いつまでも大域letで囲むなんて馬鹿げてる。

・多値のファーストクラス化
インタプリタの延長みたいな実装がほとんどの現状で
多値を効率よく扱える手段がないとまともに使いたくない。
(let ((v (values 1 2 3)))
(if (values? v)
 (value-ref v 2) ;; => 3
 (error "excepted values"))
とか。
せめて上のvalues?のように関数の返す値が多値かどうか
呼び出し側で判らないと使い物にならないだろう。

・関数呼び出し側の名前つき引数。
VBのアレは便利だろ?

あと
・キーワード、定義済マクロ名の参照はエラーにする
くだらん論争の種を潰す。

とか。



51 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:18:59 ]
www.schemers.org/Documents/Standards/Charter/

52 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:39:22 ]
>>51
>remove multiple values
正気かよ。

って、まだ決まってないのか。
消すんじゃなくて発展させる方向に行かないかね。
副作用記述減らせる手段の1つなのに。

53 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:49:43 ]
>>50
> ・名前空間
> ・関数呼び出し側の名前つき引数。

Common Lisp で幸せ

54 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:51:41 ]
いや、CommonLispに転向するぐらいならLISP辞めたほうがマシ

55 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:52:37 ]
以降、CL厨が暴れます。。。

56 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:58:10 ]
R6RS より CLtL3 をやってほしい

57 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 00:03:09 ]
>>54
>副作用記述減らせる手段の1つなのに。
詳しく。

58 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 00:19:04 ]
リスト内包表現が簡単に書けた。拡張可能だしhaskellより便利になり得る。
(define-syntax %inner-tuple
(syntax-rules (<-)
((_ (<- ret) form var val rest ...)
(%inner-tuple ret (set! ret (cons form ret)) var val rest ...))
((_ ret form () ()) (let ((ret '())) form (reverse! ret)))
((_ ret form (pred rest-var ...) (<- rest-val ...))
(%inner-tuple ret (if pred form) (rest-var ...) (rest-val ...)))
((_ ret form (var rest-var ...) (val rest-val ...))
(%inner-tuple ret
(let lp ((lis val))
(if (null? lis) '()
(let ((var (car lis))) lis
form (lp (cdr lis)))))
(rest-var ...) (rest-val ...)))
((_ ret form (var ...) (val ...) (var1 <- val1) rest ...)
(%inner-tuple ret form (var1 var ...) (val1 val ...) rest ...))
((_ ret form (var ...) (val ...) pred rest ...)
(%inner-tuple ret form (pred var ...) (<- val ...) rest ...))
))
(define-syntax tuple
(syntax-rules ()
((_ form args ...)
(%inner-tuple (<- ret) form () () args ...))))
(tuple (cons i j) (i <- (iota 10)) (j <- (iota 10)))

59 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 03:22:06 ]
クロージャ用シンタックスシュガー?

60 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 05:09:08 ]
多値なんて (関数引数と戻り値の対称性に関する神学的な論争を除けば)
パフォーマンスハックにすぎないんだから、ファーストクラス化しちゃったら
唯一のメリットが失われるじゃん。
>>50 みたいに扱いたいならリスト返すか、(receive v (values 1 2 3) ...)
で受ければいいだけだしさ。




61 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 23:48:39 ]
神学的な論争こそがschemeの本質なのに!

62 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:00:16 ]
否定はすまい

63 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:14:04 ]
……………… き り と り せ ん ………………

64 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 01:34:32 ]
合理性 → HASKELL
神学的論争 → SCHEME
実用性 → その他

65 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 02:10:31 ]
実用性 → Common Lisp に決まってる

66 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 03:57:47 ]
……………… き り と り せ ん ………………

67 名前:デフォルトの名無しさん [2005/05/20(金) 22:23:21 ]
久々にSchemeインタプリタ作った
やっぱええわ

68 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:25:37 ]
久々にCommon Lispコンパイラ作った
やっぱ疲れるわ <湯浅>

69 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:31:35 ]
「ええ、PM経験した僕も、一昨年は近山PMの下でスーパークリエータとしてデビューしました。
 はぎゃー君も誘ったんだけど、彼は真面目だから付き合ってくれませんでした。
 成果物は国際学会の発表ネタに使いまわしたんですけど、
 サスマン教授は『素晴らしい。是非このロボを譲ってくれないか』って激賞されちゃいましたよ」

だいたいマジ

70 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:09:28 ]
おとなげない



71 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:17:04 ]
いみふめ。

こだわらずに楽しい事をやろうとする精神、
そして応募して採択されたもん勝ちだよんとアピールする姿に、
なんか楽しくなっちゃったけどなw

72 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:23:16 ]
重要なのは、言語でなくライブラリだよ

73 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:28:59 ]
>>72
だよねー

74 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:42:32 ]
また頭悪そうなのが粘着しはじめたな

75 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:46:28 ]
言語仕様(意味論込)として、scheme 以上にすっきりした言語
ってなにがありんすか?


76 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:48:10 ]
○ransk?

77 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 02:03:40 ]
アセンブリ

78 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 02:05:48 ]
万能チューリング機械

79 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 02:10:23 ]
brainf*ck

80 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 02:25:38 ]
>>50
>・名前空間
>(せめてパッケージ)はぜひとも導入して欲しい。
>いつまでも大域letで囲むなんて馬鹿げてる。
遅レスすまそ。let使ってパッケージもどきを作る方法があるの?
Schemeだとlet内でdefineしてもグローバルに反映されないから無理だと
思ってたんだけど(Common Lispならできる)。
モジュールじゃおおげさな時に使いたいので教えて。




81 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 07:56:06 ]
横スレだが、わたしゃこうしてる。
(define export:foo #f)
(let () (define foo ...) ... (set! export:foo foo))
(define foo export:foo)

82 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 09:15:39 ]
それならグローバルなハッシュテーブルに詰め込んでおく方が。

パッケージとは別に、CommonLisp風のset!(ローカルでunboundなら
グローバルにbindする)ができたら便利だとは思うが、Schemeじゃ多分無理。

83 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 09:29:09 ]
俺はこうかな
(define foo #f)
(define bar #f)
(let ()
 (define hoge ...)
 (set! foo (lambda (...)...))
 (set! bar (lambda (...)...))
)
でも、最適化が効きにくくて>>81より遅くなりそうだな...(考え中)

>それならグローバルなハッシュテーブルに詰め込んでおく方が。
それってどんなやりかた?

84 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 11:15:02 ]
えぇー、scm.libとかでやってる方法がデフォルトだと思ってた

85 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 11:20:08 ]
(make-hash-table xxx-package)

(let (pi 3.141692)
(define hoge ...)
(hash-table-put! xxx-package 'foo (lambda (...) ...))
(hash-table-put! xxx-package 'bar (lambda (...) ...))
)

(define foo (hash-table-get xxx-package 'foo))
(define bar (hash-table-get xxx-package 'bar))

>>83 こんな感じ。実際こうやって使ったことないからちゃんと動くかわからないけど。
>>84 それはパッケージ管理?CommonLisp風のset!の提供の方?

86 名前:84 mailto:sage [2005/05/21(土) 11:40:44 ]
>>85
パケージ管理の話してるんだろ、ここ?

87 名前:84 mailto:sage [2005/05/21(土) 11:57:22 ]
slibの話のつもりだったんだけど・・・あれ?パッケージ管理してねぇや。。。スレ汚しすまそ

88 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 11:58:31 ]
slibの話のつもりだったんだけど・・・あれ?パッケージ管理してるけど名前空間は分けてないや。。。スレ汚し^2すまそ

89 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 12:11:23 ]
つまらんことで悩んでないで Common Lisp 使え

90 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 12:14:26 ]
うぜ



91 名前:83 mailto:sage [2005/05/21(土) 15:17:48 ]
>>85
なるほどそういう使い方があったのか THX!
すると例えば
(define-syntax define-package
 (syntax-rules (export)
  ((_ pkgname (export id ...) body ...)
    (begin (define pkgname (make-hash-table))
     (let ()
      body ...
      (hash-table-put! pkgname 'id id) ...)
     (define id (hash-table-get pkgname 'id)) ...))))
とやって
(define-package foo-package
 (export foo bar)
 (define hoge 9)
 (define foo (lambda (x) (- x hoge)))
 (define bar (lambda (y) (+ y hoge))))
とすれば
hoge => #unbound
(foo 10) => 1
(bar 10) => 19
となるわけか。
実装に依存したくない時はいいかも!


92 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 16:11:17 ]
hash-table自体が実装に依存する罠
まあ後付で作れるけどさ

93 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 03:54:25 ]
すごく遅くてもいいならalist使えばいい。


94 名前:ミミ [2005/05/22(日) 19:28:26 ]
Scheme でクラスを定義する場合、
メンバ変数の命名規則はどうしていますか?

Java や C++ だと m_var とか _var とか var_ とかで
命名すると思いますが、Scheme でアンダースコアは
あまり使われませんよね。

95 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:43:35 ]
>>94
そうでもない。アンダースコアも普通に使うよ。

96 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:55:17 ]
入力したlistを整数倍してlistで返すにはどうすればいいんですか?(list 3 4) → (list 6 8) みたいな感じです。
consでかえるようにならできたんですが。

97 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:56:18 ]
map

98 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:58:57 ]
>>96
(map (lambda (elt) (* elt 2)) (list 3 4))
--> (6 8)
ってことかな?

99 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:59:39 ]
((cut map * 2 <>) '(3 4))
=> (6 8)
cut :: SRFI 26: Notation for Specializing Parameters without Currying


100 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 23:02:09 ]
(map (lambda (n) (* n 2)) (list 3 4))
LISPなど全く知らない俺が適当に書いてみました








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

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

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