トップページ⇒tech
1001コメント280KB

Lisp Scheme Part17

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/04/20(金) 19:41:39
Lisp全般のスレです

過去スレ
Part16: http://pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: http://pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: http://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: http://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: http://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: http://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: http://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/

http://が多すぎるらしいので分割
0175デフォルトの名無しさん2007/05/10(木) 00:55:09
結論としては黒板偉大なり
0176デフォルトの名無しさん2007/05/10(木) 19:33:14
>>174
>ダイエットしろよ('A`)

そうなのか。
0177デフォルトの名無しさん2007/05/10(木) 20:05:43
ワーキングプアだから俺は太らない

ようやく一つ勝った
0178デフォルトの名無しさん2007/05/11(金) 01:56:03
gauche.nightは黒田氏大暴れしたみたいだなw
shiroさん vs 黒田氏の激論見たかった

しかしほんとうに黒板使うとはwww
0179デフォルトの名無しさん2007/05/11(金) 06:02:30
まぁここでネタ拾ったんだろう。
0180デフォルトの名無しさん2007/05/11(金) 23:06:18
性格から考えて黒田氏はこんな所見てないだろw

なかなか鋭いツッコミ入れてるなぁ
やっぱり切れ者ではあるんだな
0181デフォルトの名無しさん2007/05/12(土) 18:40:09
MIT-Schemeをちょっといじってみたんだけど、
教育用としては本当に優れているね。
さすがだわ。
0182デフォルトの名無しさん2007/05/12(土) 18:48:35
>>181
どう優れてるのか語ってくれ
0183デフォルトの名無しさん2007/05/12(土) 18:52:00
>>182
たとえば開き括弧と閉じ括弧の対応が重要だってことが身をもってわかるわけよ。
0184デフォルトの名無しさん2007/05/12(土) 19:00:04
それぐらいはC言語でもわかるぞ
0185デフォルトの名無しさん2007/05/12(土) 19:11:35
>>184
いやC言語は=の数が大事だという点の教育に主眼を置いて設計されているはず。
0186デフォルトの名無しさん2007/05/12(土) 19:14:54
>>185
そんな事はないだろw
0187デフォルトの名無しさん2007/05/12(土) 19:38:49
まずインストールが非常に簡単でした
それからネイティブコンパイラとインタプリタの両方があることも良い点かと思いますよ
0188デフォルトの名無しさん2007/05/12(土) 20:48:38
Cが何らかの教育に主眼を置いて設計されているなんて初耳でしたリッチー博士
0189デフォルトの名無しさん2007/05/12(土) 21:09:28
ブラックモアキター
0190デフォルトの名無しさん2007/05/12(土) 21:21:24
イアン、やめて〜
0191デフォルトの名無しさん2007/05/12(土) 21:22:58
この手の比較的マイナーな言語はインストールの段階で手間取ると激しく萎えるよな
始める前からこれかよ…ってw
0192デフォルトの名無しさん2007/05/13(日) 05:23:40
速いと噂のcmulispが窓で動かない時点で萎えるよね!
sbclまんせー
0193デフォルトの名無しさん2007/05/13(日) 12:28:47
ちょっとお聞きしますが、皆さんはどうして『Common Lisp』を選ばれたのですか?
どうして『OCaml』や『Haskell』ではないのですか?
私の場合は『Scheme』で関数型言語を学び始めたものですから、その延長で『Common Lisp』の勉強に進みました。
最近はちょくちょく『SML』なんかを触ったりしています。
0194デフォルトの名無しさん2007/05/13(日) 13:09:10
>>192
unicode1文字が内部でも1文字になるのがSML#しかないから(マルチバイトデータでは扱える)


01951942007/05/13(日) 13:09:47
アンカー間違った>>193宛ね
0196デフォルトの名無しさん2007/05/13(日) 13:28:31
>>193
動的な言語と静的な言語という意味で180度違うじゃん
つまりは、動的なものが良かったということだろう
0197デフォルトの名無しさん2007/05/13(日) 14:09:46
そうとは限らない
0198デフォルトの名無しさん2007/05/13(日) 14:55:27
http://pc11.2ch.net/test/read.cgi/tech/1140012484/841
の質問をした者です。

(define (f0 a b)
(let ((d1 (* a b))
(d2 (- a b))
(d3 (/ a b)))
(* (f1 d1 d2) (f2 d2 d3))))
(define (f1 x y)
(* x y))
(define (f2 x y)
(/ x y))

つづく、、、
0199デフォルトの名無しさん2007/05/13(日) 14:57:04
OCamlは静的型付けだけど型推論を持っています
0200デフォルトの名無しさん2007/05/13(日) 15:00:40
>>198 などと、定義されたプログラムが有った場合に、
以下の出力を得るのが目的です。

> (parse f0)
iport: (i0 i1)
oport: (o0)
node:(m0 m1 m2 m3 m4)
graph:
(m0 (* i0 i1))
(m1 (- i0 i1))
(m2 (/ i0 i1))
(m3 (* m0 m1))
(m4 (/ m1 m2))
(o0 (* m3 m4))

ここで、
i0〜 :一番最初の入力データ並びを置き換えたもの。
m0〜 :計算に出現する中間データを番号付けしたもの。
o0〜 :最終の計算結果を番号付けしたもの。

既にマクロで隠蔽すればいいとのアドバイスを得ておりますが、
他には何か良く使われるアイデア等はありますか?
let については lambda に置き換えるとか??
0201デフォルトの名無しさん2007/05/13(日) 15:04:07
>>193
学生時代は Ocaml や Haskell とかの強い型付けの信奉者だたよ。
まだ Ocaml はたまに使ってるなー。Haskell は頭悪い俺には計算機の実行動作と
コードとの対応がすっきりしないから疎遠になった。CL はアセンブラあがりの
俺には丁度いい抽象具合ってところかな。
0202デフォルトの名無しさん2007/05/13(日) 15:09:25
>>200 つづき。。分かりづらいですね。

scheme のプログラムについて、
それを Data Flow Graph (DFG)だと見なして、
直接にデータの流れを有効グラフにて表すことが目的です。
最初のプログラム定義は、"define" の文字列にこだわっていません。。
0203デフォルトの名無しさん2007/05/13(日) 15:09:46
>>193
そもそも Scheme も CommonLisp も関数型言語じゃないでしょ
だからなんでって言われても見当外れも甚だしいと思うんだけど
0204デフォルトの名無しさん2007/05/13(日) 15:11:13
>>201 さん、すみませんでした。。
0205デフォルトの名無しさん2007/05/13(日) 15:48:23
>>203
関数型言語の本家なんだが。マルチパラダイムの方向に進化しけど。
0206デフォルトの名無しさん2007/05/13(日) 16:05:55
srfi-1 にある iota の名前ってなにからきているんでしょうか?

他の srfi の関数だと説明的で長い名前が多いんですけど iota
だけ妙に短くて気になります。ギリシャ文字のイオタ?
0207デフォルトの名無しさん2007/05/13(日) 16:21:27
破壊的な代入が出来るってことで、純粋な関数型言語ではないということになっていますね。
0208デフォルトの名無しさん2007/05/13(日) 17:16:42
>>205
本家?
そんな話あったか?
0209デフォルトの名無しさん2007/05/13(日) 17:48:53
>>193
一言でいえば別に関数型言語を使いたいわけじゃないから
0210デフォルトの名無しさん2007/05/13(日) 18:10:56
Common Lispで大規模プログラムを組んだ場合、C++のときのような、
保守性が甚だしく損なわれるといった問題は起こらないのでしょうか?
どうもCLOSの多重継承が臭いのですよね。
やっぱりあれを使うのはC++と同様に使用を控えたほうがいいような気がするのです。
個人的にはComomon Lispは多機能すぎると感じています。
だったらSchemeを使えとなるわけで、まぁ、実際使っているのですが…。
言語使用にオブジェクト指向を組み込むのではなく、Objective-Cみたいに、
Scheme + オブジェクトシステム が理想ですね。
0211デフォルトの名無しさん2007/05/13(日) 18:20:11
C++だから保守性が損なわれるのではないと思うけどね。
0212デフォルトの名無しさん2007/05/13(日) 18:23:13
>>210
C++の多重継承だって別に保守性が甚だしく損なわれるとは思わないけどな。
おまえさん変な本で妙な偏見を吹き込まれてないか?
0213デフォルトの名無しさん2007/05/13(日) 18:50:46
>>210
多重継承を使って意味不明なデザインをしてしまうような奴は、
おそらくどんなに制限された言語を使わせても保守性再利用性ゼロの馬鹿なコードを書くだろうよ。
0214デフォルトの名無しさん2007/05/13(日) 19:13:07
それではC++ではなくCommon Lispでプログラムを書く理由は何ですか?
0215デフォルトの名無しさん2007/05/13(日) 19:15:39
楽だから
0216デフォルトの名無しさん2007/05/13(日) 19:58:35
>>215
まさにそれだな
0217デフォルトの名無しさん2007/05/13(日) 20:09:47
ではOCamlではなくCommon Lispで書く理由は何ですか?
0218デフォルトの名無しさん2007/05/13(日) 20:12:00
超うぜぇwwww
0219デフォルトの名無しさん2007/05/13(日) 20:14:39
ただたんに関数型言語厨なんだろ
状態を表現できない、もしくは表現するのに苦労する言語は使いたくないね
0220デフォルトの名無しさん2007/05/13(日) 20:43:16
このガキ、MLスレでも同じことやってやがるw

827 名前:デフォルトの名無しさん[] 投稿日:2007/05/13(日) 19:11:48
OCamlがCommon Lispよりも優れている所って何だろう?
0221デフォルトの名無しさん2007/05/13(日) 20:49:14
どんな言語をやるのか迷っているのだろう
そんなやつには俺は素直にeclipseを薦めよう
0222デフォルトの名無しさん2007/05/13(日) 20:56:21
どう考えても迷っているんじゃないだろwww
0223デフォルトの名無しさん2007/05/13(日) 21:02:08
Rubyを使わないのはなぜですか?バカだからですか?
0224デフォルトの名無しさん2007/05/13(日) 21:05:41
信者がうざいからです>>223

っていうかマジでそういう風に思わせたいだけだろ?
0225デフォルトの名無しさん2007/05/13(日) 21:13:49
ruby やっている人は lisp 知らない人がほとんどだと思うけど
lisp やっている人は ruby 知らない人なんてほとんどいないんだよな
この時点でもう土俵が違う感じ
0226デフォルトの名無しさん2007/05/13(日) 21:15:33
知っているのに、Rubyを使わずLispを使う理由はなんでしょうか?
必然性を論理的に導けるのでしょうか?
思い込みにすぎない、些細な理由はお断りします。
0227デフォルトの名無しさん2007/05/13(日) 21:17:57
マクロがないから
0228デフォルトの名無しさん2007/05/13(日) 21:20:12
仮定:「俺様はrubyを使わない」

ここから容易な推論により、
結論「俺様はrubyを使わない」
が導かれる。

この仮定は俺様の性質からして正しい。
0229デフォルトの名無しさん2007/05/13(日) 21:21:40
>>226
Rubyも使うよ
なんでも使う
0230デフォルトの名無しさん2007/05/13(日) 21:23:02
どうしてSchemeでは不満なのですか?
私はSchemeでおなかいっぱいですが…。
0231デフォルトの名無しさん2007/05/13(日) 21:27:50
どうしてCommonLispでは不満なのですか?
私はCommonLispでおなかいっぱいですが…。
0232デフォルトの名無しさん2007/05/13(日) 21:36:21
>>226
おまえの態度が気に入らないから使わない。
0233デフォルトの名無しさん2007/05/13(日) 21:40:37
知っているのに、CommonLispを使わずSchemeを使う理由はなんでしょうか?
必然性を論理的に導けるのでしょうか?
思い込みにすぎない、些細な理由はお断りします。
0234デフォルトの名無しさん2007/05/13(日) 21:41:35
典型的な釣りだろ。
0235デフォルトの名無しさん2007/05/13(日) 21:45:55
>>193

  808 名前:デフォルトの名無しさん[] 投稿日:2007/05/12(土) 20:30:53
   Scheme/Common Lispではなく、SML/OCamlを選んだ理由を教えてください。

  関数型言語ML(SML, OCaml, etc.), Part 4
  ( http://pc11.2ch.net/test/read.cgi/tech/1133003340/808 )
0236デフォルトの名無しさん2007/05/13(日) 21:52:22
言語なんてもんは、その都度、場合によっては処理単位毎にでも、
必要に応じて問題に適したものを選べばいいんだ馬鹿者。
0237デフォルトの名無しさん2007/05/13(日) 22:47:28
そうだよね。何故かLispをやってる人はRubyとかOCamlとか別の言語を使わないと思ってるらしい。
というかそれぞれの人がひとつの言語しか使わないと思ってるらしい。
それは典型的な素人の思いこみで、普通のプログラマは状況に応じてマッチした言語を選択するんだよね。
いくつもの言語をマスターしている。

たしかにLisp系は柔軟性が高くていろんな事が楽にできちゃうからこればっかり使っちゃうってのもあるけど、
それにしたってたとえばRubyの方が楽にできると思えばそっちを使うし。
0238デフォルトの名無しさん2007/05/13(日) 22:50:01
黒板に書くならScheme、そうでないならCommon Lispだな。
0239デフォルトの名無しさん2007/05/13(日) 22:50:04
>>206
> ギリシャ文字のイオタ?

元ネタは APL の原始関数イオタだと思う.
0240デフォルトの名無しさん2007/05/13(日) 23:44:43
atoi を逆にしたと思ってた
0241デフォルトの名無しさん2007/05/13(日) 23:48:00
>>217
Common Lispのほうが楽だから
>>223
Common Lispのほうが楽だから
>>230
Common Lispのほうが楽だから
0242デフォルトの名無しさん2007/05/14(月) 00:15:22
>>239
ありがとうございます。すっきりしました。

ι6 で 1 2 3 4 5 6 になるんすね。へぇ〜。
ttp://homepage3.nifty.com/ysaigusa/jp/apl/guide/intro/index.html
0243デフォルトの名無しさん2007/05/14(月) 02:30:42
>>210
CLOSハC++ナドトクラベテ ユルヤカナ オブジェクトシコウ+アルファ
ダヨ。ユルヤカナオカゲデ、C++ナドトクラベテ スバゲティニナリニク
イカモ。ナゼナラ ソウショウカンスウト メンバカンスウノ チガイガ
オオキイナリ。
コモンリスプハ オモメノケイサントダイキボニナルモノ デユウリニナ
ル。ソレイガイノトコロデハ ユウイセイガ ムカシニクラベ テスクナ
ク ナッタトオモウ。
ソケットヤ スレッドカンレンノ カンスウノ ANSIカヲハヤクススメ
テホシイ。10ネンノアイダニヒツジュヒンガフエタ。
0244デフォルトの名無しさん2007/05/14(月) 03:29:34
昔の電報キター!
0245デフォルトの名無しさん2007/05/14(月) 03:37:47
イオタって聞くと、『ランボルギーニ・イオタ(レプリカ)』ってキャプションのついた写真を思い出してしまうのは秘密。
0246デフォルトの名無しさん2007/05/14(月) 03:49:01
>>243
10年どころか、Common Lispが生まれて20年以上だもんな。
そろそろソケット、XML、Unicodeあたりを標準に取り込んでもらいたいものだ。
0247デフォルトの名無しさん2007/05/14(月) 04:13:44
スレッドもね >> 標準
0248デフォルトの名無しさん2007/05/14(月) 21:43:53
とりあえずScheme極めてみるわ
それからOCamlやろうと思うんだ
な〜にがCommon Lispだよ
0249デフォルトの名無しさん2007/05/14(月) 21:46:36
MLやるなら最初からMLでいいと思うんだ
0250デフォルトの名無しさん2007/05/14(月) 21:47:56
勝手に極めてろw
0251デフォルトの名無しさん2007/05/14(月) 23:34:33
249 :デフォルトの名無しさん :2007/05/14(月) 21:46:36
MLやるなら最初からMLでいいと思うんだ


だってSchemeのほうがかわいいじゃんw
0252デフォルトの名無しさん2007/05/14(月) 23:37:58
かわいいのか?
0253デフォルトの名無しさん2007/05/15(火) 00:06:21
まるっこくてぽにぽにしてるカンジ
0254デフォルトの名無しさん2007/05/15(火) 03:43:59
えー?
ちんまりしてきゅっとしてる感じだなぁ
0255デフォルトの名無しさん2007/05/15(火) 03:54:19
schemeハハヤクテケイリョウナノデ '86レビン トイウインショウデス。
0256デフォルトの名無しさん2007/05/15(火) 11:04:28
かわい・い 《形》 (カワユイの転。「可愛い」は当て字)
(1)いたわしい。ふびんだ。かわいそうだ。三体詩抄「万民の枯骨となりたるは―・い事ではをりないか」
(2)愛すべきである。深い愛情を感じる。「―・い我が子」「―・い声で歌う」
(3)小さくて美しい。「―・いスズランの花」
(岩波書店「広辞苑 第五版」より引用)

(1)の意味だったら厭だな
0257デフォルトの名無しさん2007/05/15(火) 12:35:07
チョークでものを書くあの感触が好きなら
Schemeをやらない手は無いよな。
0258デフォルトの名無しさん 2007/05/15(火) 19:28:06
爪で黒板を引っ掻く「キキィィィー」って音が好きなら
Schemeをやらない手は無いよな。
0259デフォルトの名無しさん2007/05/15(火) 21:51:34
黒田ちゃんの攻撃来ました

GaucheNight (About Scheme cont.)
ttp://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/gauche-night

仕様があいまいだから許さんって事?
0260デフォルトの名無しさん2007/05/15(火) 22:09:44
>>246
正規表現とFFIも☆逸す
0261デフォルトの名無しさん2007/05/15(火) 22:32:02
R*RSの曖昧さは、Schemeに与えられた唯一にして最大の自由かもしれん。
良いか悪いかはわからん。
0262デフォルトの名無しさん2007/05/15(火) 22:39:35
通読した事も無いくせに
0263デフォルトの名無しさん2007/05/15(火) 22:43:49
>>260
普通の正規表現も入ってもいいけど、パターンをS式で書けたりするとさらに萌えるな
0264デフォルトの名無しさん2007/05/15(火) 22:51:48
Schemeにマクロはないっていうがsytax-rurlesとかは何でマクロじゃないんだ?
あと、sytax-caseは非標準だけど、これはマクロなのか?
まあ、これがマクロなら、ほとんどの処理系syntax-case備えてることから、
Schemeには実質マクロがあるようなもんだといっていいと思うのだが。
0265デフォルトの名無しさん2007/05/15(火) 22:51:52
>>259
さっそくshiroたんが反論してるね。
残念ながらレベル高すぎてついていけないorz
0266デフォルトの名無しさん2007/05/15(火) 22:56:02
あの文字列の形が正規表現の正規表現たる所以であって、S式にしたらぶちこわしだ。
マクロでもってオートマトンコードに変えるんなら意味なくもないが。
0267デフォルトの名無しさん2007/05/15(火) 23:15:31
>>262
焼酎飲みながらのことが多いですが、何度か通読しておるですよ。
6-2-3の冒頭なんかが端的にその精神を表しているように思うのですけれど。
規定されていない部分についての実装の挙動の規定というのは、シラフでじっくり読んでもほんの僅かしか確認できないし。
0268デフォルトの名無しさん2007/05/15(火) 23:26:23
>>263
elispにあるみたいな表記?
0269デフォルトの名無しさん2007/05/15(火) 23:31:35
反論ってこれかぁ

Scheme:マクロ:CommonLispとの比較:意味論
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%e3%83%9e%e3%82%af%e3%83%ad%3aCommonLisp%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83%3a%e6%84%8f%e5%91%b3%e8%ab%96

オレもさっぱりだw
0270デフォルトの名無しさん2007/05/15(火) 23:48:53
>>266
perl6 の rule 見たいな感じ?
0271デフォルトの名無しさん2007/05/16(水) 03:39:20
とりあえず現時点(R5RS)では、黒田の指摘は的を射ているということは分かった。
実装的に問題なければいーじゃんとする立場からは遠く離れた高みでの議論ですなあ。
0272デフォルトの名無しさん2007/05/16(水) 16:30:23
おれC厨だけど、変数の代入はしないように気をつけてるよ。
0273デフォルトの名無しさん2007/05/16(水) 16:32:04
Cは関数型言語だからな。それくらいの配慮は欲しいところだ。
0274デフォルトの名無しさん2007/05/16(水) 16:40:36
>>273
> Cは関数型言語だからな。
???
■ このスレッドは過去ログ倉庫に格納されています