[表示 : 全て 最新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あたり


560 名前:デフォルトの名無しさん mailto:sage [04/10/01 21:08:47]
某国の場合
Pascal→Delphiみたいな名前置換があるやも

いやむしろナイスな銘々してくれって感じ?
オタ向け言語から一気に若者の主流に返り咲くか?
そういやcurlてどうよ?
本見た感じでは、うーん・・・

561 名前:デフォルトの名無しさん mailto:sage [04/10/01 21:20:45]
なんか短期間で書き込んでる変な人がいますね。

562 名前:デフォルトの名無しさん mailto:sage [04/10/01 22:44:05]
ACL Professionalの個人向け2年間$599リースは日本でもやってんの?
間に挟まってるぼったくり屋さんが黙って無さそうなんだけど。
AllegroPrologは7で入るんだっけ?それとも別製品か?作ってるのは知ってるけど
どんな製品ラインナップになるのかまでは知らん。

563 名前:デフォルトの名無しさん mailto:sage [04/10/02 00:01:18]
CLHS は float に inf や NaN を求めていないんですね.
これらが無いと困りませんか?
近日規格策定予定だったりしますか?

564 名前:563 mailto:sage [04/10/02 00:04:09]
おっと,clisp の impnotes で触れられているのをまだ見てなかった.スマソ。

565 名前:ミミ mailto:sage [04/10/02 02:06:02]
>>562
>ACL Professionalの個人向け2年間$599リースは日本でもやってんの?

Franz の営業さん (日本人) から聞きましたよ。
ただ、リースの場合のテクニカルサポートは英語のみだそうです。

566 名前:デフォルトの名無しさん mailto:sage [04/10/02 10:35:48]
>>565
マジですか。小俣ちゃんが言うんならそうなんだろな。
ACL7がリリースされて予定通りMacOSXでCommon Graphicsがサポートされて
同一条件だったら欲しいかも。日本語のテクニカルサポートなんかイラネ。英語で充分。
$1200で買い取りと$599で2年間リースのどっちにすっかで迷うな・・・

567 名前:デフォルトの名無しさん [04/10/02 16:57:12]
GaucheからPHPかPythonを使いたいのですが、どういう方法が
あるのでしょうか?

Cならこういう具合であるようなのですが。
www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Gauche%3aMeCab

568 名前:デフォルトの名無しさん mailto:sage [04/10/02 17:45:30]
>>567
あのな、C言語でどうやって使うかを考えろ。
それわかったらGaucheでも使えるだろ。



569 名前:デフォルトの名無しさん mailto:sage [04/10/02 20:27:32]
わかった!Pythonインタープリタを実装するんだね!!

570 名前:デフォルトの名無しさん mailto:sage [04/10/02 23:57:10]
おれもわかった!PHP を Scheme で書きなおすんだ!
…つか PHP なんてなんで使いたいんだ?
Gauche で書けよ HTML も


571 名前:デフォルトの名無しさん mailto:sage [04/10/03 01:23:46]
チ○コかきたい

572 名前:デフォルトの名無しさん mailto:sage [04/10/03 13:30:50]
MIT schemeがアンインストールできないんですけど・・・何なんだよヽ(`Д´)ノ

573 名前:デフォルトの名無しさん mailto:sage [04/10/03 13:38:12]
λ教は一度入ったら、
もう二度とやめれません

574 名前:デフォルトの名無しさん mailto:sage [04/10/03 13:48:31]
信者の社会復帰を支援するツールとしてPythonが用意されています


575 名前:デフォルトの名無しさん mailto:sage [04/10/03 14:00:08]
Pythonなんてswitch文さえまともに使えない言語はダメ

576 名前:デフォルトの名無しさん mailto:sage [04/10/03 15:07:31]
しかし豊富なライブラリは欲しいよぅ(;´Д`)

577 名前:デフォルトの名無しさん mailto:sage [04/10/03 15:26:09]
では parrot 待ちだな

578 名前:デフォルトの名無しさん mailto:sage [04/10/03 17:26:11]
parrotでみんな幸せになれますか?



579 名前:デフォルトの名無しさん mailto:sage [04/10/03 17:26:54]
schemeでRS232-Cを制御しようと思ったらどうすればよいのでしょうか。

580 名前:デフォルトの名無しさん mailto:sage [04/10/03 17:47:41]
>>579
>>568

581 名前:デフォルトの名無しさん mailto:sage [04/10/03 17:52:04]
初心者な質問ですみません。
よろしくお願いします。

CLOSで引数を2つ取るメソッドを定義した場合、
それ以降は引数の数が異なる同名のメソッドの定義(オーバーロード)
って不可能なのでしょうか?




582 名前:デフォルトの名無しさん mailto:sage [04/10/03 18:52:54]
>>579
termiosインタフェースがある処理系なら
Schemeオンリーでできないか? Gaucheとか。
ioctlが叩けないからだめかな。


583 名前:デフォルトの名無しさん mailto:sage [04/10/03 20:47:03]
>>581
普通にできるだろ


584 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:17:18]
Unix でのおすすめの scheme 実行環境は何ですか?

585 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:21:37]
>>584
guileが標準的

586 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:23:47]
>>585
本気か?
いや俺も標準的になって欲しいとは思ってるけど…

587 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:41:07]
>>586
ここではそれが良いって書いてあるけれど…
www.sra.co.jp/wingnut/standards-j_toc.html#Design%20Advice


588 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:41:39]
GNU ソフトウェアの標準の拡張用インタプリタは GUILE である.
GUILE はScheme 言語の実装である
(Scheme は Lisp の非常にきれいで簡潔な方言である).
www.gnu.org/software/guile/.
われわれは他の「スクリプト言語」例えば Perl や Python で書かれたプログラムを
拒絶することはないが, GUILE を使うことは GNU システム全体の一貫性のためには
非常に重要である.



589 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:47:25]
guile ってどう読むの?

590 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:48:48]
>>588
それは知ってるけど、実際はまだろくに使っていないと思っているんだけど…
おれが無知なだけだったらスマン、例を教えて欲しい

591 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:51:42]
>>590
いや、私もどこで使われているか知らない。
同様の用途ではPerlかシェルを良く使うと思うけれど。
でも標準が合った方が良いのは確かでしょ?
乱立しても、いくつの処理系をインストールしたくないし。。

>>589
guile=ぐいるって読んでいるけれど、どうだろう。

592 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:51:57]
guileで書かれたスクリプトって何かあるの?
あまり見たことないような…

593 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:54:52]
>>589
   __,, , , , _ 、 ,,, ... ,, _ ..,_
 ー=、 、ー-、`ヽ、、ヽ`!i' , ,i",r'",-'"=ミ
    `ヽ`ヾ`、 ! ヽ ! l! i! !_i_/_<'"``
     `,T、iliー'" "、,"、',  i, リ
      !/!,li ,;;-=o=-,ッィ=。ゥィ
  __  i、`!', '; `ー /;;!i、''; ,!
ー''`ヽ`,ーi'`''"!、ヽ , `一'、 /   __
    `il `i ! ヽ、   ̄ ̄ / iヽ、/ ,.ヽ_
     i! !`   `ーァ、-ー'  ! ノ!トi,!'",ノ-、
   ,..=、i! iヽ-、 rィ',;'!ヽー-、!  `/_,i' _,.!'、
ーニー-、._ `ヽゞニ-、.;' i! ! ,  `ト_ノ`x-'" ノ
=ニヽ、 , `, /ヾ=ソ ノ !/   !、`ー`''イ、
-ー-、 `i, / / ヽ `イ_,  i -'" ̄`! !   ヽ
   Tノ /-'"  `   ' !    ヽ     !

594 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:56:04]
いつになったら”まだ”が取れるんだろう。
永遠にこない気がしてならない。
そもそも「標準の拡張用インタプリタ」とはなんぞや?
何時使うんだよ。
Linuxのインストーラーはpythonで書かれている様だし。
使われないで標準もあったもんじゃない。
そもそもSCMをベースにしておきながらあの遅さはなんなんだ?
Cにトランスレートすりゃあいいってもんでもないだろ。

595 名前:デフォルトの名無しさん mailto:sage [04/10/03 23:58:45]
ガイルでしょう

596 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:01:51]
www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&newwindow=1&q=guile+%E3%82%AC%E3%82%A4%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&newwindow=1&q=guile+%E3%82%B0%E3%82%A4%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

597 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:06:59]
www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&newwindow=1&c2coff=1&q=guile+%E3%82%AC%E3%82%A4%E3%83%AB+lisp&lr=lang_ja

www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&newwindow=1&c2coff=1&q=guile+%E3%82%B0%E3%82%A4%E3%83%AB+lisp&lr=lang_ja

598 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:09:11]
>>596
その検索結果には明らかに>>593のガイルが含まれているよ



599 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:10:37]
lisp ガイル     7件
lisp guile ガイル  3件
guile ガイル    303件

ノイズばっかだな

600 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:18:45]
>>598
綴として読むのだからどのガイルでも良いと思う。

601 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:19:39]
lispじゃ引っかかんないんじゃない?
scheme

602 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:22:03]
gaucheよりguileの方がいいところって何?


603 名前:デフォルトの名無しさん [04/10/04 00:22:52]
gacuhe-gl のマンデルブロートのサンプルを実行したいんですけど
load するだけじゃだめですよね
実行して画面にだしたいんですけどどうやったらよいのでしょう?

604 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:22:56]
www.google.com/search?hl=ja&ie=UTF-8&q=scheme+guile+%E3%82%AC%E3%82%A4%E3%83%AB&lr=

www.google.com/search?hl=ja&ie=UTF-8&q=scheme+guile+%E3%82%B0%E3%82%A4%E3%83%AB&lr=

605 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:23:08]
>>602
GNUのお墨つき。

606 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:23:55]
そこで Pika Scheme ですよ

607 名前:デフォルトの名無しさん mailto:sage [04/10/04 00:58:37]
>>585の凄まじい釣りっぷりで誰も>>584に答えていないので、
debianでapt-cache search schemeしてみた。
その中でscheme実行環境っぽいのを適当に
bigloo - A practical Scheme compiler
chicken - Simple Scheme-to-C compiler
drscheme - Scheme Programming Environment
elk - the Elk Scheme interpreter
escm - Embedded Scheme Processor
guile-1.6 - The GNU extension language and Scheme interpreter
mit-scheme - The MIT/GNU Scheme development environment
mzscheme - Rice University PLT Scheme Interpreter
oaklisp - An object-oriented dialect of Scheme.
rscheme - Threaded, persistent, OO, scheme interpreter and compiler
scm - A Scheme language interpreter.
scsh - A `scheme' interpreter designed for writing system programs
stalin - An extremely aggressive Scheme compiler
stklos - An efficient Scheme System providing a powerful Object System
gauche - A Scheme implementation designed for script writing.

沢山あるようなないような…
スクリプトならgauche,それ以外ならmzscheme,mit-scheme,scm,gaucheあたりが無難?

608 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:09:19]
gimpとか



609 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:13:37]
その中だとbiglooがよさそう

610 名前:デフォルトの名無しさん mailto:sage [04/10/04 02:04:45]
guileはGNU/LINUXならほぼ最初から入っているので、悪い選択じゃない。

611 名前:デフォルトの名無しさん mailto:sage [04/10/04 02:08:11]
>>610
貴様はguile使ったことあるのか?
guile常用してるやついるの?
何に使うのか知らんが。

612 名前:デフォルトの名無しさん mailto:sage [04/10/04 02:27:24]
scheme処理系一覧っぽいのが出てきたところでふと思い出したのですが、
リアルタイムで経緯をご存知の方がいたらYale Tがどんな末路を辿ったのか教えて
いただきたく。全然話題にも上らないんでマイナーな本なんだろうと思うけど
Slade先生のObject-Oriented Common LispでLisp使い始めたのでちと興味あり。

613 名前:デフォルトの名無しさん mailto:sage [04/10/04 07:46:46]
>>581
> CLOSで引数を2つ取るメソッドを定義した場合、
> それ以降は引数の数が異なる同名のメソッドの定義(オーバーロード)
> って不可能なのでしょうか?
ラムダリスト(引数リスト)が合同(congruent)のメソッドは一つのGeneric function
に共存できると規定されています。

required argumentの数が違う2つのラムダリストは合同とは言えません。

find-method, remove-method を駆使して、メソッドをgeneric functionからすべて削除
した後で、異なるラムダリストを持つgeneric functionを定義することは可能です。

(defmethod foo (a b &optional c))
としておくのはダメなの?

614 名前:デフォルトの名無しさん mailto:sage [04/10/04 08:30:22]
既に知ってるかもしれんが、T についての文書ってこれくらいしか知らんなあ。
Olin Shivers: History of T
store.yahoo.com/paulgraham/thist.html

615 名前:デフォルトの名無しさん mailto:sage [04/10/04 23:28:40]
>>307
UnCommon Web は継続渡しスタイルで書けてなかなかおもしろい。


616 名前:デフォルトの名無しさん [04/10/05 09:34:36]
Schemeで次のようなリストを生成したいのですが、
どういう手続きになるのでしょうか。

(define l '("a" "b" ("c" "c1" "c2")))
(define (foo l)
(?))
=> (list ("a" "b" "c" "c1")("a" "b" "c" "c2"))

617 名前:デフォルトの名無しさん mailto:sage [04/10/05 09:53:24]
>>616
(define l '("a" "b" ("c" "c1" "c2")))
(define (foo boo) `(list ,boo))
(foo l)
=> (list ("a" "b" ("c" "c1" "c2")))

618 名前:デフォルトの名無しさん mailto:sage [04/10/05 12:32:40]
>>616の質問も、>>617の回答も、まったく意味がわからんのは俺だけ?



619 名前:デフォルトの名無しさん mailto:sage [04/10/05 13:07:29]
俺も分からん.

620 名前:デフォルトの名無しさん [04/10/05 13:39:12]
>> 618,619
すいません。質問がまちがってました。やりたいことは、S式で表現
したディレクトリ構造から文字列を生成する、です。
(define l '("a" "b" ("c" "c1" "c2")))
(define (foo l)
(?))
=> ("a/" "a/b" "a/c/" "a/c/c1" "a/c/c2")



621 名前:デフォルトの名無しさん [04/10/05 13:43:39]
>>620
リストはディレクトリ。そのリストの先頭がディレクトリ名。
リスト内の2番目以降がファイル名。としています。
(define l '("etc" "hosts" ("apache" "httpd.conf" "httpd.conf.bak")))

622 名前:(define (´∀`) 'マターリ) mailto:sage [04/10/05 14:09:14]
(define (foo l)
 (let loop ((dir "") (l l))
  (if (list? l) (map (lambda (l) (loop (string-append dir (car l)) l)) (cdr l))
    (string-append dir l))))
今思いついたのはこんなの。

623 名前:(define (´∀`) 'マターリ) mailto:sage [04/10/05 14:20:57]
(define (foo l)
 (let loop ((dir "") (l l))
  (if (list? l) (let ((dir (string-append dir (car l) "/")))
          (cons dir (apply append (map (lambda (l) (loop dir l)) (cdr l)))))
    (list (string-append dir l)))))

624 名前:デフォルトの名無しさん mailto:sage [04/10/05 14:34:04]
こんなもんか。(elisp)
(defun foo (tree prefix)
(cond ((null tree) nil)
((atom tree) (list (concat prefix tree)))
(t (let ((new-prefix (concat prefix (car tree) "/")))
(apply #'append
(list new-prefix)
(mapcar #'(lambda (file) (foo file new-prefix))
(cdr tree)))))))
と書いたところで、623 と被ってるじゃん。

625 名前:デフォルトの名無しさん [04/10/05 14:50:25]
>> 622 623
Gaucheを使ってます。このコードは何で動くのでしょうか。
>> 624
elispで動きました。gaucheのコードではどうなるのでしょうか。


626 名前:デフォルトの名無しさん mailto:sage [04/10/05 15:14:42]
>>625
やれやれ... それは君への宿題とするので来週までに解いてきたまえ。
それと、メール欄に sage と書きたまえ。

627 名前:デフォルトの名無しさん mailto:sage [04/10/05 15:20:19]
なんとかできました。(なんでsageって必要なんですか?2chよく知らないんです)
(define (foo tree prefix)
(cond ((not(pair? tree)) (list (string-append prefix (x->string tree))))
(else (let ((new-prefix (string-append prefix (car tree) "/")))
(apply append
(list new-prefix)
(map (lambda (file) (foo file new-prefix))
(cdr tree)))))))

628 名前:(define (´∀`) 'マターリ) mailto:sage [04/10/05 16:52:09]
(define (foo l)
 (define (f x) (string-append (car l) "/" x))
 (define (g x)
  (if (list? x) (foo (cons (f (car x)) (cdr x)))
    (list (f x))))
 (cons (f "") (apply append (map g (cdr l)))))

>>625
全角スペースを取ればSCMで動いたよ。
622は失敗作。



629 名前:デフォルトの名無しさん mailto:sage [04/10/05 22:06:35]
>>614
Tについてのドキュメントって異様に少ないですよね。普通に失敗したプロジェクトだったの
でしょうか。

>>615
継続スタイルはUCWのウリみたいですが、フレームワークの他の部分はどんな感じですか?
副作用バリバリの手続きでHTML生成する設計になってたりしたらイヤかも。
beseのMLに開発者がポストしてましたが、パフォーマンスが気になるくらい遅いですか?
もう少し詳細な使用感を語っていただけるとうれしいです。参考にするので。

630 名前:デフォルトの名無しさん mailto:sage [04/10/05 22:52:06]
Tは失敗というか、誰もメンテしなかった・できなかった結果のような
386以降で書かれてたなら誰もが欲しかっただろうし

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

SICP を見ながら書いてみました。どうっすか?

(define (foo l)
(define (foo-iter result dir file)
(if (eq? file '())
result
(if (pair? (car file))
(let ((next-dir (string-append dir (caar file) "/")))
(foo-iter (append result (list next-dir))
next-dir
(cdar file)))
(foo-iter (append result (list (string-append dir (car file))))
dir
(cdr file)))))
(let ((dir (string-append (car l) "/")))
(foo-iter (list dir) dir (cdr l))))


632 名前:631 mailto:sage [04/10/05 23:11:19]
間違ってた... かなり無理があるけど、これで当っているかな?

(define (foo l)
(define (foo-iter result dir file)
(if (eq? file '())
result
(if (pair? (car file))
(let ((next-dir (string-append dir (caar file) "/")))
(foo-iter
(foo-iter (append result (list next-dir))
next-dir
(cdar file))
dir
(cdr file)))
(foo-iter (append result (list (string-append dir (car file))))
dir
(cdr file)))))
(let ((dir (string-append (car l) "/")))
(foo-iter (list dir) dir (cdr l))))


633 名前:デフォルトの名無しさん mailto:sage [04/10/05 23:12:35]
(let ((next-dir (string-append dir (caar file) "/")))
(foo-iter (append result (list next-dir))
next-dir
(cdar file)))
(car file)の処理はこれでいいんだろうけど(cdr file)の分の処理がない。

634 名前:デフォルトの名無しさん mailto:sage [04/10/05 23:17:32]
(if (pair? (car file))の内側に(foo-iterがあるけど
(foo-iterの内側に(if (pair? (car file))を持っていったほうが
すっきりすると思う。

635 名前:631 mailto:sage [04/10/05 23:34:12]
>> 633
まったく、おっしゃる通りでした。

>> 634
...暫く考える...
なるほど。なんとなくイメージできました。勉強になります。

他の人のと見比べるとやっぱり、map とかも勉強しないとだめですね。


636 名前:デフォルトの名無しさん mailto:sage [04/10/06 00:45:10]
>>631
SICPの何ページですか。俺の勉強したいので。

637 名前:デフォルトの名無しさん mailto:sage [04/10/06 01:08:52]
letrec fib=fn(n)return n<2?n:fib(n-1)+fib(n-2);
fib(30);

let fib2;
fib2=fn(n)return n<2?n:fib2(n-1)+fib2(n-2);
fib2(30);

let fib3=fn(f,n)return n<2?n:f(f,n-1)+f(f,n-2);
fib3(fib3,30);


638 名前:631 mailto:sage [04/10/06 01:26:58]
>>636
そのものズバリ、というのはないのです。スマソ。
まだ LISP お勉強中なので教科書を見ながらでないと書けないと
いうことでして。

全体の構造は P.19 の脚注にある factorial から fact-iter を
呼び出し、fact-iter の末尾再帰でループ、というのを真似ています。
foo の内部で関数 foo-iter を定義し、foo-iter の末尾再帰で
各ディレクトリエントリ毎に反復になっています。
fact-iter での product が foo-iter での result に対応します。
ややこしいのはディレクトリエントリ毎の処理(下の foo-entry)で、
エントリがファイルの場合はそのファイル名を result リストに加える
だけなのですが、エントリがディレクトリの場合は result リストに
当該ディレクトリ以下の全てのファイル名を foo-iter で得て
result リストに加える必要があります。

(define (foo l)
(define (foo-entry result dir entry)
(if (pair? entry)
(let ((next-dir (string-append dir (car entry) "/")))
(foo-iter (list next-dir) next-dir (cdr entry)))
(list (string-append dir entry))))
(define (foo-iter result dir files)
(if (eq? files '())
result
(foo-iter
(append result (foo-entry result dir (car files)))
dir (cdr files))))
;; foo 本体
(let ((dir (string-append (car l) "/")))
(foo-iter (list dir) dir (cdr l))))




639 名前:デフォルトの名無しさん mailto:sage [04/10/06 01:59:12]
foo-entryにresultはいらんな。

640 名前:デフォルトの名無しさん mailto:sage [04/10/06 02:05:50]
foo 本体は(foo-entry 'hoge "" l)でいいな。

641 名前:デフォルトの名無しさん mailto:sage [04/10/06 14:10:36]
>>638
結局 (append result (foo-entry result dir (car files))) で
ディレクトリの深さ分スタック使うのだから
普通に再帰で書いたのに比べて何もメリットがなくない?
-- 
(define (foo l)
(if (string? l)
(list l)
(map (lambda (x) (string-append (car l) "/" x))
 (cons "" (apply append (map foo (cdr l)))))))

642 名前:デフォルトの名無しさん mailto:sage [04/10/06 14:14:09]
スペースの変換を忘れてたorz
(define (foo l)
  (if (string? l)
    (list l)
    (map (lambda (x) (string-append (car l) "/" x))
         (cons "" (apply append (map foo (cdr l)))))))

643 名前:631 mailto:sage [04/10/06 23:21:02]
>>639 >>640
確かにそうですね。

>>641
メリットは特にないですね。
高階関数に馴染みがなくてあれ以外の実装を
思いつかなかったというのが真相だったりします。

やろうと思えば引数を増やして全て末尾再帰にできるかも
しれませんが、やたら読みにくいソースになるでしょうね。


644 名前:デフォルトの名無しさん mailto:sage [04/10/07 23:52:58]
埋め込み言語の例というのが見てみたいんだけど,
onlisp 以外にもなにかありませんか?

645 名前:デフォルトの名無しさん mailto:sage [04/10/08 00:21:31]
>>644 これとか?
ttp://www.shiro.dreamhost.com/scheme/vault/escm.html

これはちょっと埋め込みとはちがうけど、S 式で HTML を書くというアプローチ
ttp://cl-www.msi.co.jp/solutions/knowledge/
ttp://cl-www.msi.co.jp/solutions/knowledge/src

646 名前:645 mailto:sage [04/10/08 00:28:51]
あ、ちがった、埋め込み言語ってそういう意味じゃないのね。

たとえば Lisp/Scheme で書かれた LR パーザジェネレータとか。
腐るほどありそうだな。今、さっと見つかったのはこんなの。
ttp://www.informatik.uni-freiburg.de/proglang/software/essence/doc/html/essence.html

647 名前:644 mailto:sage [04/10/08 01:00:10]
>>646
ども.
たしかに数はたくさんありそうなんですけど,うまく見つけられなくて.
ここのリンク先のはソースもあるんで,
schemeは使ったこと無いけど,本とにらめっこしながら読んでみます.
他にもいい例があればお願いします.

648 名前:デフォルトの名無しさん mailto:sage [04/10/08 01:13:04]
LISPはちょっとかじった程度でよくわかってないのですが
質問させてください

たとえば、Cでネットワークゲームを作るときに
なんか処理したかったら、適当なデータ構造に
情報を埋め込んで送信して、受信側でデータを解釈→処理
とかなりますよね
LISPのevalとかを使うと、プログラム本体がデータ構造もかねるから
動作させたい処理のS式をそのままリテラルとして送信して
eval させて動作させてしまう、とか出来るんでしょうかね?



649 名前:デフォルトの名無しさん mailto:sage [04/10/08 01:54:37]
Lisp に限らず、eval のある言語ならだいたいできるんじゃないのかな。

650 名前:デフォルトの名無しさん mailto:sage [04/10/08 02:08:45]
eval is evil.

651 名前:デフォルトの名無しさん mailto:sage [04/10/08 07:33:19]
でもそういう設計はよくないけどな。
ネットワーク越し(じゃなくても)で通信するときに相手から送られてくるものを
信用するというのは危険すぎる、ということを歴史は教えている。


652 名前:デフォルトの名無しさん mailto:sage [04/10/08 08:02:59]
>>651
アプレットやSOAPと基本は同じでしょ?
用はセキュリティーの確保の仕方の問題だと思われ。

653 名前:デフォルトの名無しさん mailto:sage [04/10/08 09:32:56]
>>648
evalも結局のところは、「受信側でデータを解釈→処理」してるだけ
なんだけどね。「解釈→処理」の処理系が最初から用意されていると
いうだけで。

汎用性が高い、本体と同じ言語で書ける、といった側面はそのまま
メリットにもデメリットにもなるし。


654 名前:デフォルトの名無しさん mailto:sage [04/10/08 10:17:45]
scheme の eval みたいに環境を指定できれば比較的手軽にセキュリティー確保できるね


655 名前:デフォルトの名無しさん mailto:sage [04/10/08 11:19:34]
shiro さんの2004.10.07の文章で、
www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Shiro

以前から Lisper としての適性に関係があるとして、時々話題になっている、
アスペルガー症候群・高機能自閉症の、簡易テストが紹介されている。

「平均は16.4ポイントで、 32ポイント以上のうち8割はautism related disorder
だそうだ。私(shiroさん)は31ポイントだった」そうです。
www.wired.com/wired/archive/9.12/aqtest.html

自分でやってみたところ、慎重に回答したのに38ポイントだった。
しかし自分はヘタレ Schemer。ぜんぜんLisp能力に比例して無いじゃん…。

656 名前:デフォルトの名無しさん mailto:sage [04/10/08 12:14:36]
このテスト、人間関係が苦手である、うまく行っていないという項目が多いな。
だから、

・ Lisper として能力が高い
→・他言語のプログラマとしても成功する
→・周囲から尊敬を集める
→・人間関係が良くなる
→・このテストのスコアが下がる

Lisper としての能力と、このテストのスコアには、こういう負の相関が
働いている気がするのだが。

657 名前:デフォルトの名無しさん mailto:sage [04/10/08 12:48:17]
心理テストに気休め以上の意味があるとは思わん。

658 名前:デフォルトの名無しさん mailto:sage [04/10/08 17:18:30]
>>655
辞書引きながらやってみた。 24ポイント。
微妙に低くてチョトくやしい (w



659 名前:655 mailto:sage [04/10/08 18:40:48]
念のために言うけど、このテストはまったく当てにならないと思うよ。
『on Lisp』をいつまでも読み進められない私がそれは保証できる。

だけどなんとなく、ほかの人の点数も知りたいのう。
冷やかしでトライしてくれた人、他にもいたら書き込んでください。
おながいします。

660 名前:デフォルトの名無しさん mailto:sage [04/10/08 19:26:09]
34。Lisp は好きだけど能力があるのかどうか……






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

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

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