1 名前:デフォルトの名無しさん [2007/04/20(金) 19:41:39 ] Lisp全般のスレです 過去スレ Part16: pc11.2ch.net/test/read.cgi/tech/1172404795/ Part15: pc10.2ch.net/test/read.cgi/tech/1151025773/ Part14: pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ http://が多すぎるらしいので分割
709 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 22:51:55 ] λ算法とLispのlambdaは等価ではないので
710 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 23:01:19 ] そういやifはλで表現できたんだな…。
711 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 23:07:44 ] >>709 どこらへんですか? 正格評価だからですか?
712 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 00:57:12 ] >>708 チューリング完全である≠"apply" or "eval"が記述できる lambdaがあればチューリング完全だけど "Lisp"の機能を満たすために5つの基本関数が必要である ってことですか?
713 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:57:50 ] リストの n 番目「以外」の要素のリストを得るにはどうすれば良いでしょうか 例えば (0 1 2 3 4 5 6 7 8 9) から 3 を除いた (0 1 2 4 5 6 7 8 9) が欲しいです それとも、もしかすると Gauche の添付ライブラリの中にありますか…? 一応自分でも書いてみたのですが かなり長〜くなってしまって。
714 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 11:10:12 ] (define (exclude-nth n l) (cond ((null? l) l) ((= n 0) (cdr l)) (t (cons (car l) (exclude-nth (1- n) (cdr l))))))
715 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 11:25:50 ] 好みの分かれるところか? (define (exclude-nth n l) (append (take l n) (drop l ( + n 1)))) (exclude-nth 3 '(0 1 2 3 4 5 6 7 8 9)) =>(0 1 2 4 5 6 7 8 9)
716 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:12:11 ] >>715 takeは必ずリストつくるからappend!でセルを節約したくなる貧乏性な俺
717 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:56:33 ] レス感謝です。 >714 勉強になります。 >715 takeとdrop、こんなのあったんですね。 こんなに短くなるとは…
718 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:58:18 ] まさかこのオペレータを使う日が来るとは……。 (use gauche.sequence) (define (exclude-nth n l) (reverse! (fold-with-index (lambda (i e pr) (if (= n i) pr (cons e pr))) '() l))) ;(exclude-nth 3 '(0 1 2 3 4 5 6 7 8 9)) ;; =>(0 1 2 4 5 6 7 8 9)
719 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:03:35 ] >718 このオペレータ…とはどれのことなのか Schemeに不慣れな私には判りませんが …えーと… ちょっと勉強がてら気合い入れて読んでみます…
720 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:05:28 ] fold-right-with-index(仮称)があればreverseしなくていいのにね。
721 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:29:05 ] fold-rightはある意味reverse以上のコスト
722 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:41:43 ] 【問題】 >>713 を不完全リスト(最後のcdr部がアトム)に対しても 適用できる様にexclude-nthを拡張せよ ex.) (exclude-nth 2 '(0 1 2 . 3)) => (0 1 . 3) (exclude-nth 3 '(0 1 2 . 3)) =>(0 1 2) (exclude-nth 4 '(0 1 2 . 3)) =>(0 1 2 . 3) ;; 同値
723 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:59:22 ] やってみました。あってる? (define (exclude-nth n ls) (cond ((null? ls) '()) ((= n 0) (if (not (pair? ls)) '() (cdr ls))) ((not (pair? ls)) ls) (else (cons (car ls) (exclude-nth (- n 1) (cdr ls))))))
724 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 14:21:52 ] つきあってくれてありがとう。 多分合ってる。 用意してた答えはコレ (define (exclude-nth n l) (let loop ((n n)(r '()) (l l)) (if (pair? l) (loop (- n 1) (if (= n 0) r (cons (car l) r)) (cdr l)) (if (null? l) (reverse r) (if (= n 0) (reverse r) (apply list* (reverse (cons l r)))))))) 我ながらapply list* reverseは美しくないよな・・
725 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 14:28:04 ] それって破壊もlist*も使わずに末尾再帰で書ける?
726 名前:723 mailto:sage [2007/07/04(水) 14:30:40 ] named-letでもやってみたんだけど、いまいち自信がないというか…。 (define (exclude-nth n ls) (let loop ((ls ls) (n n) (acc '())) (cond ((null? ls) (reverse! acc)) ((= n 0) (if (not (pair? ls)) (reverse! acc) (loop (cdr ls) (- n 1) acc))) ((not (pair? ls)) (append (reverse! acc) ls)) (else (loop (cdr ls) (- n 1) (cons (car ls) acc))))))
727 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 14:33:34 ] list*相当を作っちまえば・・ (define (apply-list* l) (define (loop l) (if (and (pair? l) (pair? (cdr l))) (cons (car l) (loop (cdr l))) (car l))) (loop l)) って、これは末尾再帰じゃないしな >>726 appendすりゃよかったのね
728 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:17:00 ] >>709 λとlambdaが等価じゃないところ1つ見つけた λxyz.E = λx.λy.λz.E (lambda (x y z) E) ≠ (lambda (x) (lambda (y) (lambda (z) E))) 他にどんな違いがあるかなぁ
729 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:50:27 ] チューリング完全を実現するのに必要な 最低限のデータ構造って何だろう。 リストが使えないとダメなのかな?
730 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:59:27 ] 例えば配列があればリストは作れる。チューリング機械の定義により何かの記憶機構は必要。
731 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:13:14 ] SKだけでチューリング完全なのに 純Lisp5関数でチューリング完全じゃない(?)のは不思議 eqやatomがTやNILを返すんじゃなくて carとcdrを返すなら何とかなりそうな気もする 関数を返す関数くらいは必要な気がする
732 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:16:37 ] >>713 CL loop マクロは見易いと思う。 (defun exclude-nth (n l) (loop for x in l and idx from 0 if (/= idx n) collect x)) だけど >>722 の不完全リストだと書けないかな。
733 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:57:12 ] >>729 整数が1つあれば十分だろ。コンピュータのメモリなんて見方によっては ものすごく桁数が多い1つの2進数なんだし。
734 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:59:48 ] でもそれって結局、無限長の配列を仮定してることにならないかだぜ?
735 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 01:04:59 ] 無限長の配列でも一つの整数でも同じことだろ。 どちらか片方あればもう片方が表現できる。
736 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 01:19:56 ] lispマシンってメモリアドレスって有ったんだろうか?
737 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 01:41:20 ] >>736 Symbolics社のはタグ付きアーキだったってC-FAQに書いてあった だからポインターが数値でない
738 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 02:14:33 ] >>736 なくてどうする
739 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 20:47:56 ] read-eval-printループのevalの部分を別のコンピュータで実行させるフレームワークみたいなのってない? 作ろうと思えば簡単に出来そうなんだが、誰かやってる人いないかなと思って。
740 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 21:21:17 ] slime
741 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 21:22:26 ] >>739 readしないでevalって言うのはできるん? sexpを通信先のマシンでreplしてるところに食わせるのならslimeがそうじゃない
742 名前:739 mailto:sage [2007/07/07(土) 21:43:31 ] >>740-741 サンクス gauche使ってるんだが、gauche.listenerってのを見付けた。 ちょいいじってみる。
743 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 01:23:48 ] Gaucheでselect使ってサーバー書こうと思ってたんだけど質問。 selectで書き込み可能でも、ソケットバッファを越えたサイズを書き込もうとするとブロックするよね。 unixのwrite(2)ならバッファを全部フラッシュしないからブロックしないように書けるんだけど。 生のwrite(2)をそのままGaucheから呼べないの?
744 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 05:40:22 ] 今はできないんじゃなかったっけな。0.9までになんとかするって話だったと思う。
745 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 06:42:30 ] >743 サーバ書くモチベをちょっとだけGaucheのソース修正に割くんだ。 そしてうまく動いたらパッチ提供してあげたら喜ばれるんじゃないかな。 ライブラリ作成者側のオナニーテストよりは実アプリによる動作テスト の方が意味あるだろうし。
746 名前:743 mailto:sage [2007/07/10(火) 09:30:08 ] >>744-743 了解! 綺麗なソースコードだからちょっといじってみる。 cvs headに比べると、debian etchのやつはだいぶ古いんだな。 今のところはスレッド使う方向に逃げるってのが正解みたいだね。
747 名前:743 mailto:sage [2007/07/10(火) 10:02:44 ] アンカミスった>>744-745 だった
748 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 04:17:03 ] 卒論を書かなきゃ行けないんだけれど、何も思いつかない。 思いついたとしても既に実現されている。 計算機の歴史なんてまだ100年もたっていないのに、 その先行研究の凄さにはひれ伏すしか無い、という 今日この頃の学部生なんですが、何か面白いお題ないですかね? スペックとしてはCommon Lispが出来るくらいなんですが。 「こんな事やったら面白いんじゃないの?」 とか 「コレが無いから困っている。でもつくるのメンドイ」 っていうの有りませんか?
749 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 09:34:11 ] >>748 S式で書ける TeX とかどうよ
750 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:56:13 ] >>749 え、無いの? HTMLをS式で表現するものがあるのに?
751 名前:749 mailto:sage [2007/07/11(水) 20:20:40 ] いや、あるかもしれんけど。 そんなに真剣に調べたことはないんで。
752 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 22:16:07 ] ちょっと違うかもしれないけどmaxima があるからなー>tex >>748 オープンソース版のAllegroCache(OODB)作るってのはどうよ?
753 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 22:51:01 ] 皆さんお返事有り難うございます。 そりゃ、自分もいろいろ考えたんですよ。 例えば色でプログラミングできたら面白いかな〜とかね。 正方形を9分割した物が有って、 白→nil 黒→t が決定。 んで色がいくつ塗っているかでチャーチ数を表す。 緑→(()) 緑と黄色→(()(())) だから、緑と赤は等しい訳です。直感的ではないですけれど。1=1なんで。 んで、最低限の関数の色を決める。 car→オレンジ とかね。 でも、これじゃ関数定義できないし、逆にややこしいし、 大きい数の計算は出来ないし、データ構造の定義は出来ないし、 何の役に立つのか説明しにくい。 んで、考えれば考えるほどどうすれば良いのか分からなくなって、 皆さん卒論でどんなことしていたか質問してみたんです。 すいませんでした。
754 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:16:04 ] 卒論とかだと学問ぽく見せる必要があるから、Lisp 族は人気ないだろ。 強い型付けのメリットとして、とても研究な感じになるという利点があるから 卒論は Haskell とか ML 系でなんかごにょごにょするほうがお手軽じゃないかな。
755 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:47:38 ] > オープンソース版のAllegroCache(OODB)作るってのはどうよ? それならむしろAllegroStore
756 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 01:46:49 ] >>754 >強い型付けのメリットとして、とても研究な感じになるという利点があるから >卒論は Haskell とか ML 系でなんかごにょごにょするほうがお手軽じゃないかな。 カリー・ハワード対応の事ですか? それで、チューリングマシンの停止問題なんかを証明しても、 そりゃ学問的だけれども新規性がないんじゃ。 誰も証明してない命題が有るなら別なんでしょうけど。 >>755 AllegroStore?AllegroCache? なんぞコレ? clispしか使った事無いのでいまいち何に使うのかさっぱり? 総称関数を保存して共有できるようになる代物? そもそもデータベースを触った事が無いからデーターベースからして よくわかんないです。
757 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 01:47:44 ] 一言で言うなら 卒論書く前にもっと勉強しろよ
758 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:20:34 ] まあ4年の7月なんてこんなもんだ。
759 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:23:19 ] >753 世の中にはGPGPUというものがあってだな
760 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 03:05:22 ] >>759 自分、面白そうな事思いついたです。 CUDA使って、Lispのインタプリタ作るのってどうでしょうかね? そして、clispとどっちが計算が速いか検討するの。 これだと、今のところ誰もやってないだろうし、 リスト処理ってGPU向きの処理だと思いませんか?
761 名前:デフォルトの名無しさん [2007/07/12(木) 04:03:19 ] わざとっぽいのは相手にしない方が
762 名前:754 mailto:sage [2007/07/12(木) 07:51:20 ] >>756 どっからカリーハワードだの停止性判定だの証明だのがでてきたんだよ。 そーゆうんじゃなくて、なんか小物の研究でも Haskell や ML ならそれっぽく見えるだろって事。 つうかテーマは研究室の先輩や教官とよく相談したほうがいい…。 たとえば超並列分散 Lisp をつくるぜ!!と決めたとして、周囲の支援が得られず完全自力じゃ評価もまともにできんし、学費がもったいない。
763 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:50:20 ] じゃあ Lisp の型推論がどこまでできるかとか
764 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 15:26:16 ] >>762 >そーゆうんじゃなくて、なんか小物の研究でも > Haskell や ML ならそれっぽく見えるだろって事。 >つうかテーマは研究室の先輩や教官とよく相談したほうがいい…。 >たとえば超並列分散 Lisp をつくるぜ!!と決めたとして、周囲の支援が >得られず完全自力じゃ評価もまともにできんし、学費がもったいない。 いや、お恥ずかしい話なんですが自分の大学は大学院が無いんで 先輩なんていないんです。 それに指導教官は「何か作れば良いよ〜」という態度なんで 自由な反面、アイデアが必要なんです。 自分の友達は「大学のSNSをxoopsで作る」でOKと言われてました。 自分は「さすがにそれじゃアレかなぁ」と思って。 自分はCUDAでLisp処理系は面白い案だなと思います。 誰でも思いつきそうだけれど、今のところ誰もやってないし、 自分の処理系欲しかったんで。 それじゃ、パソコン買うところから始めなきゃならないんですが(Macなんで) 頑張ってみますね。 C言語は1年くらい触ってないし、マルチスレッドプログラミングは初めてなんで 不安ですが。 出来たらUpするんで、コードレビューしてください。 タライ回し関数が速く動くといいなぁ。
765 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:20:23 ] 逐次処理しなきゃだめな部分は早くならないんじゃないのかな。
766 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:34:47 ] >>764 くそうらやましす
767 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 20:12:46 ] 一口で大学と言ってもピンキリなんだな
768 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 21:17:35 ] 型推論 1 (変数、戻り型が単一の型に定まる物) (define (ack m n) (cond ((zero? m) (+ n 1)) ((zero? n) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1)))))) (ack (m ?x) (n ?y)) : (result ?z) から ?x ?y ?zの型を求める (zero? m) => (type_a) : bool 1 => int (+ n 1) => (int int) : int から ?x = int (zero? n) => (type_a) : bool m, nがintなのでzero?の引数は intと仮定して良い (- m 1) => (int int) : int から ?y = int 末尾コンテキストは+ とackのみなので?z = int これでack内の +-zero?演算子はintという前提で最適化でける ・・という感じで良い?
769 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 21:36:38 ] >(tail-map list '(a b c . d)) =>((a) (b) (c) d) (define (tail-map proc x) (let loop ((l x)) (if (pair? l) (cons (proc (car l)) (loop (cdr l))) (proc l)))) ;procをcdrにも適用する (tail-map (proc ?x) (x ?y)) : (result ?z) から ?x ?y ?zの型を求める (l ?v) = ?x (pair? l) (type_a) : bool この中ではl = pairと確定 (car l) => (pair) : type_b (cdr l) => (pair) : type_c (proc 〜) (type_a) : type_d (loop 〜) (type_c) : type_e (cons 〜) (type_b type_c) : pair (proc not-pair) : type_f 以上からprocは1引数でtype_aまたはnot-pairを受け取りtype_d|type_fを返す、 xはpairかnot-pair tail-map の戻り型は pair もしくはprocの戻り型に依存 ・・・もうわかんね
770 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:08:54 ] Schemeが(Haskellほどでないけど)関数的であるとされる根拠の1つに 識別子が一度ある場所に束縛されると 他の場所に束縛を変更される事がないっていうのがあるけど それをいうならCだって同じですよね? 一度宣言した変数のアドレスはスコープ内で一定 むろん関数的であるという最大の根拠は関数が第一級の値であるというところにつきるんでしょうけど でもR5RSでは関数のリテラル表記はない、でもそれぞれの実装でサポートしてもよいって扱いですけどね lambdaは関数のリテラル表記だっていう解説もちらほら見ますが
771 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:12:32 ] 「識別子が一度ある場所に束縛されると他の場所に束縛を変更される事がない」ことが 「関数的である」とは思わないけど
772 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:22:29 ] >>771 いや、参照透過性とは関係ないのに 識別子の束縛が変更されない事に言及する解説をよく見る気がしたので
773 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:25:43 ] ヒント: 言論の自由
774 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:20:13 ] >>768 なんかところどころよくわかんないような。 自分で目の子でやったらこんな感じになったけど、どうかな。 まず (zero? m) から m : number 次に (+ n 1) から n : number だから ack : number * number -> ?z で else 節の (ack (- m 1) (ack ...)) の第二引数を見ると ?z = number ∴ ?x = ?y = ?z = number
775 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:43:17 ] zero?って渡される引数がnumberのみと限定していいのかな。 リストとか入ってきたらエラーでいいんだっけ? まあそういう判定が減るから全体で3倍ぐらい速くなるかな。 それはそれとして、ackみたいな単純なケースは結構作ってるうちに 適当なのができそうだからどうでもいいと思う。 問題は型が定まらない場合。 上、named-let余計だった。 (define (tail-map proc l) (if (pair? l) (cons (proc (car l)) (tail-map proc (cdr l))) (proc l))) まあ普通のmap1でもいいけど。 (define (map1 proc l) (if (pair? l) (cons (proc (car l)) (map1 proc (cdr l))) '())) この場合procが確定するまで保留にすべきなのかな? procは1引数取って何か返す、ぐらいの情報しかないよね。
776 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:50:20 ] >>775 > zero?って渡される引数がnumberのみと限定していいのかな。 R5RS みると (zero? z) と書いてあって、 z は複素数を表すメタ変数ということだから そこは問題ないと思う。 で、今気付いたけど = にしてしまうとまずいね。例えば三行目で (zero? n) が (<= n) だったりすると number ではダメで、 real に推論されなきゃいけない。
777 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:59:38 ] いや、この際大雑把に「数字かどうか」ぐらいの区別でよくないですか? アドホックにでも最適化に結び付けて、お手軽に型推論による効果 を体感したいというか。 >>775 のmapにしてもフローチェックすればpair?の判定で car/cdrのpair判定が省略できるとか、そんなレベルから徐々に 大掛かりな仕掛けを考えていければいいかなと。
778 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:01:00 ] >>777 うん、その方が健全な気がしてきた
779 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 08:55:16 ] え、そのほうが soundnessがいえるんですか? と、あえて誤読をしてみる。
780 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 13:14:34 ] 誤読というより誤爆?
781 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 06:51:44 ] 俺、凄い事思いついた! GHC立ち上げると、 Prelude> ってでるじゃん。 なんでプレリュード?とずっと思ってたんだけれど、 これってもしかして、 Franz Lisztの前奏曲から来てるんじゃないの? リストつながりで。
782 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 12:17:40 ] Franz Lisp
783 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 13:50:04 ] >>781 prelude って一般名詞じゃないの?
784 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:01:21 ] 俺も Prelude は一般名詞だと思う。
785 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:54:13 ] ネタにマジレスなんとやら
786 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:58:10 ] ネタにマジレスを重ねるというネタだったのにマジレスされた…
787 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:13:36 ] でもそれが、ネタにマジレスを重ねるというネタにマジレスするというネタかもしれないと考えるのが危機管理というものではないだろうか。
788 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:17:54 ] ネタになりかけのレスと、ネタになる余地のないレスの区別ぐらいつきますわよ。
789 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:19:30 ] だがしかしそれは主観に左右されるものであるから、絶対的な答えなどないのではないか つまりは君の意見などどうでもよいのですわよ。
790 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:21:27 ] ここ、Haskell スレだと思ったら Lischeme スレだったのか!
791 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:27:55 ] むしろ寝たすれ家と思う田
792 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 21:07:40 ] 自分がアホっぽく見える流れになっちゃったら、 「何か狙ってた」ことにして「お前らのせいでそれがダメになった」と嘆いとくのは基本。
793 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 21:10:43 ] 誤爆?
794 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 23:41:45 ] アホの子はかあいいよ?
795 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:31:39 ] gaucheのCVS Headって、ここ最近コンパイルできたためしが無いんだけど、 これってパッチとか作る価値があるの? それとも、shiroさんの手元ではできてるの?
796 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 18:36:58 ] wilikiかlingrあたりで聞いてみたら? HEAD使ってる人は何人もいると思うけど。
797 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:15:04 ] 普通にできてる。ドキュメントよまずにやってない?DISTほげ
798 名前:795 mailto:sage [2007/07/21(土) 00:53:52 ] HACKING とかは読んでる。 Cのコンパイルじゃなくて、schemeコードを実行するところで ライブラリが見つからないとかいろいろ出る。 システム既存のgaucheと衝突してるのかなあ…? lingrで、makeにいろいろオプション渡すとできるよって言ってた人が いて、それで前進したけどまだ止まる もう少しあがいてみるかな
799 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:16:10 ] そうか。 俺は ./DIST gen を忘れてて、コンパイルできねーな?と思ってた事があったんでひょっとしてと思ったんだけどね。 で、どんなエラーメッセージなの?
800 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:01:50 ] >>795 俺もそれではまった。 最近はGauhceのコンパイルにGaucheを要求するので、 古いGaucheを使ってるとgoshがエラー出す。 Gauche 0.8.10(release)使えばコンパイルに成功する。 Gauche 0.8.10(release)すらコンパイル出来ないときは、 バージョンを一個ずつ上げてみて。
801 名前:795 mailto:sage [2007/07/22(日) 17:34:53 ] >>800 サンクス 調べてやってみます
802 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:00:07 ] schemeってcommon lispのsymbol-valueに相当するもの無いけどevalを使うしかないんですか? やりたいことはalistに文字と関数のペア入れておいてその関数を呼び出したいんだけど。 '(#\a . func_a) だとfunc_aは関数にならないから `(#\a . ,func_a) と書いてるんだけどいちいち','を書くのがめんどい。 こういうところはマクロを使うのがセオリーなの?
803 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 07:13:30 ] Schemeでは「symbolに値が入ってる」わけじゃないからね 処理系によっては実行時にはシンボルと値の結び付きは完全に忘れちゃってる 可能性もあるし。 処理系依存で良ければ、symbol-valueとかglobal-variable-refとかが使える 場合もある。ポータブルにやるならevalしかないだろうね。 「文字と関数のalist」とかは普通にバッククオート使っちゃうけどなあ。
804 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 08:50:18 ] 個人的には evalも邪道だと思う。 そもそも R4RS には evalも必須じゃなかったし。 万独裁なら cons でも使え。
805 名前:802 mailto:sage [2007/07/23(月) 11:14:54 ] >>803 なるほどね。R5RSをよく読んだらそう書いてあったよ。 Common Lisp陣営がSchemeを批判するときの論点がそこなのね。 >>804 確かにevalは使いたくない。 今まで通りquasi quote使って関数をunquoteすることにしました。
806 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:16:11 ] >>805 > >>803 > なるほどね。R5RSをよく読んだらそう書いてあったよ。 > Common Lisp陣営がSchemeを批判するときの論点がそこなのね。 全然違うと思うが。 Schemeにも1st class objectとしてのシンボルがあればなあという CLerもいるっちゃいるだろうけどさ。
807 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:38:53 ] ブラックボード黒田
808 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:49:38 ] kuroタソ(*´д`*)/ヽァ/ヽァ
809 名前:デフォルトの名無しさん [2007/07/25(水) 09:38:10 ] www.tekkon.net/ これってlisperの話?w