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


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

CommonLisp Scheme Part11



1 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:13]
過去スレ
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: ruku.qp.tc/dat2ch/0311/20/1042167213.html
Part8: pc2.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/

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


2 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:14]
□参考リンク□

日本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の入門サイト。


3 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:15]
慶応の授業のページ・記号処理プログラミング 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ユーザ会

4 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:16]
□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/

5 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:16]
□その他□

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のプログラムがたくさん紹介されているのでここを当たるべし。

6 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:17]
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関連の論文リンク集

7 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:31]
その他よさそうなリンク

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/


8 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:32]
仕様関係)
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/


9 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:35]
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の実用的な情報が色々。


10 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:01]




11 名前:デフォルトの名無しさん [04/08/03 23:41]
WindowsXPでschemaをやりたいのですが、XYZZYのような手軽
な処理系はありませんか?

12 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:47]
>>11 www.drscheme.org/

13 名前:デフォルトの名無しさん mailto:sage [04/08/05 04:26]
>>11
lambdaがエラーになる・・・なぜに

14 名前:デフォルトの名無しさん mailto:sage [04/08/05 04:42]
>>13
Dr.Scheme?
Language -> Choose Language で
Standard R5RS を設定すれば lambda 使えるよ

15 名前:デフォルトの名無しさん [04/08/06 05:12]
>>11
対話環境なしでいいなら Handy Scheme なんかどう?
とりあえず、お手軽です。

www.geocities.jp/bneck44/hS.htm




16 名前:デフォルトの名無しさん mailto:sage [04/08/06 10:27]
>>15
簡単に窓を開けるみたいですね.
それなら FFI を実装してくれると,計算ものを他人に使ってもらうときに
ピッタリの解になるのですが.

17 名前:デフォルトの名無しさん mailto:sage [04/08/09 11:08]


18 名前:デフォルトの名無しさん mailto:sage [04/08/09 14:46]
保全

19 名前:デフォルトの名無しさん mailto:sage [04/08/10 23:47]
WiLiKi 荒らされてる……んだよね、あれは。

20 名前:デフォルトの名無しさん mailto:sage [04/08/11 00:40]
まさかWiLiKiを荒らすような奴がいるとは思わなかった。
よほど心が腐っていると思われる。



21 名前:デフォルトの名無しさん mailto:sage [04/08/11 02:16]
何かあったの?

22 名前:デフォルトの名無しさん mailto:sage [04/08/11 10:33]
WiLiKiがどのように荒らされたのか、差し支えない範囲で教えてください。
CLikiもたまに「バカ、アホ、氏ね」みたいな荒らされかたをすることがあるよね。

23 名前:デフォルトの名無しさん mailto:sage [04/08/11 12:18]
トップページの履歴見てみなよ。大幅な書き換えがあるから。 >>22

24 名前:デフォルトの名無しさん mailto:sage [04/08/11 12:53]
あんがと。確認しました。

25 名前:デフォルトの名無しさん mailto:sage [04/08/11 19:39]
こういう分かりやすいのより、本人にそのつもりが無いのに
結果としてグチャグチャにひっかきまわす輩の方がタチが悪いなぁと思う今日このごろ。
自覚が無いから学習もしないし。

26 名前:デフォルトの名無しさん mailto:sage [04/08/11 20:12]
またそのはなしか

27 名前:デフォルトの名無しさん mailto:sage [04/08/11 23:28]
formに、Lispのタームとしての定訳はありますか?
片仮名でフォームとするのが一般的でしょうか。
迷訳^H^H名訳で有名なSICPでは何と書いてあるのかとか、
Lisp全盛の頃の本では何になっているとかも知りたいですが。


28 名前:デフォルトの名無しさん mailto:sage [04/08/12 00:05]
Lisp全盛っていつよ?

29 名前:デフォルトの名無しさん mailto:sage [04/08/12 00:21]
WiLiKiの件はWinAPIのとこでど素人っぷりを晒している気の毒な人に
叱咤してるのがそれかなと思ったら、しょ〜もないことする奴が居るんだね〜。
あきれたもんだ。

>>28 は第5世代コンピュータとか、その辺りじゃないの?

30 名前:デフォルトの名無しさん mailto:sage [04/08/12 00:42]
形式



31 名前:デフォルトの名無しさん mailto:sage [04/08/12 09:43]
symbolicsとかの lisp machineがあったころじゃ、lisp全盛期って。
とはいうものの、日本ではそんな栄えてなかったから定訳はないとか。


32 名前:part10 の >>968 mailto:sage [04/08/12 20:38]
part10 の >>988

clisp を windowsXP で,日本語ディレクトリ以下で使う件です.
CP932 が無くて自動的に UTF-8 になっていたわけですが,
impnotes.html によると libiconv が必要のようです.

とりあえず色々なところに gnuwin32 の libiconv を置いてみましたが,
できませんでした.
impnotes.html が言う「libiconv のインストール」とは,windows では
どういうことになるのでしょうか.

33 名前:968じゃないけど mailto:sage [04/08/12 21:47]
>>32
libiconvを適当なディレクトリにインストールし、そのディレクトリを
指定してコンパイルしなおすってこと。
sourceforgeやcygwinで配ってるバイナリだと日本語は使えないよ。

34 名前:デフォルトの名無しさん mailto:sage [04/08/13 04:37]
S式を捨ててM式やそれに似た構文を採用した言語もLispと呼んでいいなら
Lispの全盛期は現在 (苦しいか)

35 名前:デフォルトの名無しさん mailto:sage [04/08/13 07:05]
M式の言語って具体的には何ですか?

36 名前:デフォルトの名無しさん mailto:sage [04/08/13 20:53]
>>35
M式をさらにヘンテコな構文にしたLisp方言:
Perl、Python、Ruby...

37 名前:32 mailto:sage [04/08/13 21:47]
>>33
そうですか...orz

minGW でも build できればいいのですが.

38 名前:デフォルトの名無しさん mailto:sage [04/08/13 23:19]
日本での全盛期はELISとTAOの頃です

39 名前:デフォルトの名無しさん mailto:sage [04/08/14 00:14]
>>34
そんなの考えなくても現在が全盛期でさらに成長中。
たとえば、インストールベースについて考えてみる。IDCによると、
2003年には約1000万台のLinuxデスクトップが出荷されている。
ほとんど全てのディストリビューションにおいてデスクトップ環境
には何らかのLisp処理系が含まれ、Linuxデスクトップにはさらなる
成長の余地が期待されることを考えると、Lispの出荷数は現在が
過去最大であり、今後さらに伸びることが期待される。
プログラマの数だと、Emacs Lispやguile-gtkを利用したプロジェ
クトのメンバー数だけを見ても順調に伸びている。
利用者数にいたっては、webアプリのサーバサイドで使用され、
それと知らずに利用してるユーザーの数なんて数え切れない。
>>29,31,38の頃と比べるとシェアは減ってるかもしれないけど、
それ以上にパイが広がってるのが現在だと思う。

40 名前:デフォルトの名無しさん mailto:sage [04/08/14 03:56]
いつまでたってもマイナーなのは変わらんけどね



41 名前:デフォルトの名無しさん mailto:sage [04/08/14 10:04]
猿でも分かる guile プログラミング
〜 unix tool イージー拡張プログラミング 〜

見たいな tutorial があると助かるんだけどな〜。
Scheme の知識は前提にしてていいから。

42 名前:デフォルトの名無しさん mailto:sage [04/08/15 01:30]
>>40
10月に月刊 Lisp Magazine が創刊されるから
メジャーになるんじゃない?



43 名前:デフォルトの名無しさん mailto:sage [04/08/15 13:40]
>>42
マジ?w

44 名前:デフォルトの名無しさん mailto:sage [04/08/15 15:43]
float についての挙動がいまいち掴めません.教えてください.

ソースの最初に (setf *read-default-float-format* 'double-float) と
書いておくと,それ以降の `2e0' や '2.0' は double-float として
扱われるのですよね?
また,
  (setf b (* 2.0 2)) ==> 4.0
  (type-of b) ==> DOUBLE-FLOAT
となるのに,
  (setf a (atan 1)) ==> 0.7853981f0
  (type-of a) ==> SINGLE-FLOAT
となってしまいます.
全てを double-float にしたいです.どのようにすればよいのでしょうか.

45 名前:デフォルトの名無しさん mailto:sage [04/08/15 17:18]
(setf a (atan 1.0)) ではどう?

46 名前:44 mailto:sage [04/08/15 20:20]
>>45
あっ,すみません.それは気づいていました.
ちゃんと *read-default-float-format* が反映されます.

ソース内の全ての float を double-float にするつもりで
いろいろやったのですが,warning が出てしまっているので,
手順として
1. (setf *read-default-float-format* 'double-float)
2. int を float 表記に.(例: `1' を `1.0' や `1e0' に)
をやったのですが,不十分らしいのです.
3. とにかくリテラルを `1d0' に.
もやりましたが,まだ warning が出ます.

どうすれば完全に double-float だけのソースにできるのでしょうか.

47 名前:デフォルトの名無しさん mailto:sage [04/08/15 21:01]
それはリード時にdouble floatにするだけでしょ。

48 名前:デフォルトの名無しさん mailto:sage [04/08/15 21:04]
www.geocities.jp/bneck44/hS.htm
scheme + HSPって感じだな。

49 名前:デフォルトの名無しさん mailto:sage [04/08/15 21:54]
librep みたいなのの Windows 版になれば便利かも

50 名前:44 mailto:sage [04/08/15 22:08]
>>47
ごめんなさい.よく意味が飲み込めません...
ソース内のリテラルには効果無しですか? ちゃんと変わっているようにも見えますが...

数値計算をさせている方々は,どんな方針で float を扱っているのでしょうか.
single-float ではちょっと足りない感じはありませんか?
処理系依存なところが多くてどうしたらいいか途方に暮れています.



51 名前:デフォルトの名無しさん mailto:sage [04/08/15 22:22]
>>48 今、回線が細くてソース下して読む気にならないんで、ソース読んだ人
いたら教えてください。

Tiny Scheme 派生ということなんですが、文字列の長さ制限はどうなってます
か。


52 名前:デフォルトの名無しさん mailto:sage [04/08/15 22:30]
>>46
規格を調べてないから間違ってるかもしれないけど
(atan) とかの関数が返すfloatの精度は処理系依存だったような気がする。
この点は、>>45 がうまくいっているなら大丈夫として、

>3. とにかくリテラルを `1d0' に.
>もやりましたが,まだ warning が出ます.

integer が必要なところまで floatにしてない?
(elt '(a b c d) 1d0) とかは通らないよ。

53 名前:44 mailto:sage [04/08/15 23:56]
>>52
> integer が必要なところまで floatにしてない?

大丈夫です.cmucl や sbcl では warning が出ないので,
clisp 2.33.2 が何か間違えているのかと思いましたが,
CLHS で *read-default-float-format* の example を試してみたら
cmucl と sbcl は single-float と double-float しか実装されていないんですね...
cmucl を使っていれば何も知らずに過ごせるんですね...

ところで,sbcl ってちょっと bug ありませんか?
dotimes から (return) しようとするとコンパイルが通らないのです.
簡単なテストではうまくいくのですが.

54 名前:デフォルトの名無しさん mailto:sage [04/08/16 02:08]
>>42
ソースきぼんぬ。

55 名前:デフォルトの名無しさん mailto:sage [04/08/16 02:33]
月刊 Lisp Magazine
創刊号の付録は lambda closure の実装
9号まで集めると簡単に最適化 Lisp コンパイラが組めます。

その他、継続号を入手するのが困難な季刊 Schemer (予定)とか、
必要な時にだけ発行される Haskell User (未定)とか。

56 名前:デフォルトの名無しさん mailto:sage [04/08/16 03:22]
> 必要な時にだけ発行される Haskell User (未定)とか。

lazyだけにいつまで待っても出ないヨカーン


57 名前:デフォルトの名無しさん mailto:sage [04/08/16 10:04]
読者が読むまで記事が書かれません


58 名前:デフォルトの名無しさん [04/08/16 11:44]
>>51
#define LINESIZE 1024
char linebuff[LINESIZE];
char strbuff[256];




59 名前:デフォルトの名無しさん mailto:sage [04/08/16 21:46]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   |  J ←さじ
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄   

60 名前:デフォルトの名無しさん mailto:sage [04/08/16 21:56]
>>55 月刊 Lisp Magazine か Lisp Wizard 探訪 とかやってくれんかなぁ
今どこで Lisp が使われているか本当に知りたいよ







61 名前:デフォルトの名無しさん mailto:sage [04/08/16 22:32]
昔、bitにはLispの連載があったよなぁ。。


62 名前:デフォルトの名無しさん mailto:sage [04/08/16 22:51]
Good Old Days
λ...

63 名前:デフォルトの名無しさん mailto:sage [04/08/16 23:24]
Gauche-devel-jpのshelarcyがいたい。
webも痛い。page.freett.com/shelarcy/

64 名前:デフォルトの名無しさん mailto:sage [04/08/17 00:35]
ウォチは板違いってテンプレに書いておいた方が良さそうだな

65 名前:デフォルトの名無しさん mailto:sage [04/08/17 00:41]
結局、月刊 Lisp Magazine はネタですか?
残念。

66 名前:デフォルトの名無しさん mailto:sage [04/08/17 00:41]
>>64
やってんのは一人だろ、どうせ。何のつもりか知らんが。

67 名前:デフォルトの名無しさん mailto:sage [04/08/17 14:41]
Lisp関係ないじゃん

68 名前:デフォルトの名無しさん mailto:sage [04/08/17 21:57]
>>63
あれは誰かがサクっと書いて「ほれ。」と出して黙らせるしかないんじゃないかな。
放置が一番でしょう。
川合さんのメールは似たような奴を相手にしたら使えそうなので、
それを引き出したという点では価値があるといえる(w


69 名前:デフォルトの名無しさん mailto:sage [04/08/17 22:59]
あれは単に匙を投げられただけでわ

70 名前:デフォルトの名無しさん mailto:sage [04/08/18 04:06]
R*RSでは伝統的なマクロ(不健全なマクロ)をサポートする気はないのかな?
もうすでに却下されているのかな?



71 名前:デフォルトの名無しさん mailto:sage [04/08/18 10:32]
>>70
一体何のために?


72 名前:デフォルトの名無しさん mailto:sage [04/08/18 12:50]
hygienic の対義語が不健全か。その表現いいねー
(defmacro sekusu (timpo mamco)
`(insert ,(if (hokei-p timpo) ...
とかやっちゃうわけだ。ハァハァ

73 名前:デフォルトの名無しさん mailto:sage [04/08/18 17:14]
Scheme の健全マクロを学ぶのに、おすすめのページはありますか?


74 名前:デフォルトの名無しさん mailto:sage [04/08/18 18:33]
>>73
ないよ

75 名前:デフォルトの名無しさん mailto:sage [04/08/18 19:08]
>>73
とりあえずブックマークにこんなの入ってた。
home.comcast.net/%7Eprunesquallor/macro.txt

76 名前:デフォルトの名無しさん mailto:sage [04/08/18 19:47]
>>73
前スレ(Part 10)の786にも書いたんだけど、
Schemeの健全マクロについては、

・日本語

オンラインで読める文献は >>5 に出てる「入門Scheme」以外にないと
思う。pdf ファイル。
#www4.ocn.ne.jp/~inukai/scheme_primer_j.html

書籍だったら、『プログラミング言語SCHEME』R.ケント ディヴィグ (著)
www.amazon.co.jp/exec/obidos/ASIN/4894712261


・英語

上の本の原書(英語版)がオンラインで読める。
www.scheme.com/tspl2d/index.html

77 名前:デフォルトの名無しさん mailto:sage [04/08/18 23:27]
>>76
よっぱど英語を見たくないのでもなければ、下の英語のがおすすめ。
わかりやすいよ。



78 名前:デフォルトの名無しさん mailto:sage [04/08/19 00:27]
Dr.Schemeって機能限定されてない?
defstructとか使えないような気がする・・・

79 名前:デフォルトの名無しさん mailto:sage [04/08/19 01:40]
「機能限定されてる」んじゃなくて、「機能拡張されてない」んでしょ
defstruct は srfi なんだから

80 名前:デフォルトの名無しさん [04/08/19 02:32]
The Little Schemer の9章を解説してるwebページはないですかね?
もしくは理解するのに役立つwebページ、本でもいいですが…。

define 使わなくても lambda をたくさん使えば関数定義できるってことを
解説した章だったんでしょうか?さぱーりわかりません。ヽ(´ー`)ノ





81 名前:デフォルトの名無しさん mailto:sage [04/08/19 06:26]
lambdaで関数定義ってことはY combinatorかなあ。

82 名前:デフォルトの名無しさん [04/08/19 08:46]
昨日の某大学の院試でSchemeの問題が出たんだけど…

できませんでした。orz

83 名前:デフォルトの名無しさん mailto:sage [04/08/19 10:29]
>>80
あれは Y Combinator の説明なんだけど、はっきり言ってわかりづらい。
私は旧版の日本語訳『Scheme手習い』しか読んでないんだけど。

ちなみに Y Combinator とは、lambda だけで定義された再帰関数をつくる
ための汎用関数。

とりあえずこんなページをどうぞ。
i.loveruby.net/ja/misc/ycombinator.html

あと、このスレの Part 9 の 422 から、lambda だけで再帰する方法に
ついて議論がある。個人的にはそこがとても参考になった。
そこを見ながら、自分でいろいろコードを書いてみて、Y Combinator が
なぜこういう形でなければならないのか、納得できるまで追及した。

84 名前:デフォルトの名無しさん mailto:sage [04/08/19 12:44]
>>82
ツバメの大学ですか?
いや,まあ俺も(ry

85 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:13]
>>80 この説明はどうですか?
otoha.dyndns.org/diary/0408.html#19

86 名前:デフォルトの名無しさん mailto:sage [04/08/19 23:34]
(sort lst #'< :key #'car)

で先頭に来るやつが,元の lst の中でどこにあったのか (position) を
知るにはどうしたらいいんでしょう?

(position-if #'この中で一番大きい lst)
みたいなことをやりたいのです.

87 名前:デフォルトの名無しさん mailto:sage [04/08/19 23:44]
>>86
効率悪いけど、こんな感じじゃダメですか。
(let ((x '(1 2 3 4)))
(position (apply #'max x) x))


88 名前:86 mailto:sage [04/08/19 23:53]
>>87
ダメじゃないです.ただ,良く使われそうな操作なので,
みなさんなら最も短くて効率の良い方法をご存じかと思ったんです.

max が返すものは,元の要素と eq なんですよね.

89 名前:デフォルトの名無しさん mailto:sage [04/08/20 00:31]
(define (hoge x)
(let loop ((max (car x)) (mnum 0) (x (cdr x)) (num 1))
(cond ((null? x) mnum)
((> (car x) max) (loop (car x) num (cdr x) (+ num 1)))
(else (loop max mnum (cdr x) (+ num 1))))))

90 名前:デフォルトの名無しさん mailto:sage [04/08/20 00:44]
Schemeですまんが、結局こうするしかないのでは。

(define (position-if pred lis)
  (if (null? lis)
      -1
      (let loop ((pos 1) (ans-pos 0) (ans-val (car lis)) (lis (cdr lis)))
        (if (null? lis)
            ans-pos
            (if (pred (car lis) ans-val)
                (loop (+ 1 pos) pos (car lis) (cdr lis))
                (loop (+ 1 pos) ans-pos ans-val (cdr lis)))))))

(position-if < '(2 9 3 1 4)) => 3
(position-if > '(2 9 3 1 4)) => 1
(position-if < '()) => -1




91 名前:90 mailto:sage [04/08/20 00:48]
10分以上遅れて結婚とは…orz

92 名前:デフォルトの名無しさん [04/08/20 02:21]
マスターするならCommonLispとSchemeどっちがいい?

93 名前:デフォルトの名無しさん mailto:sage [04/08/20 02:34]
どっちも趣味

94 名前:デフォルトの名無しさん mailto:sage [04/08/20 06:53]
>>93
どっちも優雅で知的で、極めるまでは時間が
かかるけど学ぶことそのものが楽しみつつ行
なえる素晴しい言語って意味?

それともどっちも金にならないオタク言語で
ちょっとした満足感は得られるけど世間では
何の評価も得られなくて非生産的って意味?


95 名前:デフォルトの名無しさん [04/08/20 10:29]
Lisp の実装によくある、car 部のお隣(物理的な隣のメモリ)に
直接 cdr 部を置くことで、(car . cdr) を4+4 = 8バイトで表す技法が理解できません。

確か Guile の中の人に、それの説明らしき文書があったような気がするけど、
今、Guile が手元にないのと、そもそも英語が碌に読めません。

どうしてこんなのでちゃんと動くんですか?
誰か詳しい人教えてください。


96 名前:デフォルトの名無しさん mailto:sage [04/08/20 11:16]
>>95
アドレスのLSBから数ビットをタグに使う

97 名前:95 mailto:sage [04/08/20 11:39]
いや、タグの話ではなくて。。。

例えば、 単純な (1 . 2) というペアだけならば話は分かるが、
(1 2. 3) となった場合とか、((1 .2) 3 4 . 5) となった場合とか、
どうして >>95 で良いのかが分からん。


98 名前:デフォルトの名無しさん mailto:sage [04/08/20 11:50]
どこがダメになりそうだと思うのですか?

99 名前:95 mailto:sage [04/08/20 12:30]
例えば、ヒープを8バイト(セル2つ分)単位で確保して、

#define CAR(a) (*(a))
#define CDR(a) (*((a)|4))
みたいなマクロが定義されている場合、

仮に
car 部がアドレス 0x12345670 に配置されて、
cdr 部がアドレス 0x12345674 に配置されるとして、

その cdr の cdr はどうするのさ?とか、
(#define CDR(a) (*((a)+4)) なら、まだ納得できるけど・・・)

つか、上のような8バイト単位でメモリを切り取っていく
意味が良く分かっていないと思う(メモリの圧縮(=節約)の為
だという事ぐらいは分かるのだが)。


100 名前:デフォルトの名無しさん mailto:sage [04/08/20 12:33]
4バイトがセルへのポインタになったり即値になったりする様子がイメージできないのでは?








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

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

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