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

Lisp Scheme Part38

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/02/01(土) 19:55:39.23
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part37
http://toro.2ch.net/test/read.cgi/tech/1377967896/

■テンプレ
ttp://wiki.fdiary.net/lisp/

■関連スレ
【入門】Common Lisp その10【質問よろず】
ttp://toro.2ch.net/test/read.cgi/tech/1361341876/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
ttp://toro.2ch.net/test/read.cgi/tech/1272469779/
【Lisp】プログラミング言語 Clojure #3【JVM】
http://toro.2ch.net/test/read.cgi/tech/1380333808/
【魔法】リリカル☆Lisp【言語】
ttp://toro.2ch.net/test/read.cgi/tech/1183396621/
0002デフォルトの名無しさん2014/02/01(土) 20:04:51.33
>>1
乙
0003デフォルトの名無しさん2014/02/01(土) 21:17:38.30
(1) car, cdr のそれぞれの読みを答えなさい。
(2) car, cdr はそれぞれ何の略号でしょうか? 答えなさい。
0004デフォルトの名無しさん2014/02/01(土) 21:18:46.33
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。
0005デフォルトの名無しさん2014/02/01(土) 23:15:48.20
>>4
foo,bar,baz, fuga , hehe, gegeに付いてはいかがであろうか?
0006デフォルトの名無しさん2014/02/02(日) 09:48:36.38
>>1 乙
0007デフォルトの名無しさん2014/02/02(日) 23:18:53.47
通は aho を使う
0008デフォルトの名無しさん2014/02/03(月) 01:42:26.67
エイホ?
0009デフォルトの名無しさん2014/02/03(月) 03:01:30.02
つまりawkを使うと……
0010デフォルトの名無しさん2014/02/04(火) 22:55:57.34
最近仕事でシェルスクリプトとかOS標準の底辺言語ばっかでLISP使えないからちんちんいらいらする
0011デフォルトの名無しさん2014/02/04(火) 23:10:57.83
Gaucheって処理系全部USBメモリに入らなかったっけ?
0012デフォルトの名無しさん2014/02/04(火) 23:14:26.55
チームでやってる仕事だと物理的に持っていけるかどうかとか関係なく使えるものが限られることはあるんじゃね。
0013デフォルトの名無しさん2014/02/04(火) 23:26:29.72
うちの会社は成果物以外の開発環境は自由だから、lisp使いまくってるわ
0014デフォルトの名無しさん2014/02/05(水) 21:52:59.23
女王陛下のLisp
ラムダ計算のとこがさっぱりわからん
0015デフォルトの名無しさん2014/02/05(水) 22:21:06.23
成果物って果物が成ったからどうしたんだろうって思っちゃったじゃないかよ。 ギギギ
0016デフォルトの名無しさん2014/02/06(木) 06:21:24.47
中国人乙
0017デフォルトの名無しさん2014/02/06(木) 08:56:35.01
>>16
風呂屋の「湯」がスープに見える件か
0018デフォルトの名無しさん2014/02/06(木) 22:38:15.44
λ珪酸とか所詮表記の問題でしかないんだから「そーいうもん」って思って読み進めりゃいいよ
0019デフォルトの名無しさん2014/02/07(金) 14:21:11.64
定義やモデルは「そうすることで何が便利か」ということに着目すべきで、
「それは何か」ってことを考えても仕方ない。
だって誰かがそう決めたという以上の意味なんてないんだもの。
0020デフォルトの名無しさん2014/02/07(金) 16:24:57.73
そりゃそうだが、素数夜曲のラムダ計算の説明ってあまり後ろの話しに関係ないんじゃないか?
衒学趣味をちらつかせたい高校生向けという感じが否めないなあ。 
0021デフォルトの名無しさん2014/02/07(金) 20:36:00.98
それでいいんじゃないの。 最初は中二病でも役には立つんだし。
0022デフォルトの名無しさん2014/02/07(金) 23:21:06.49
うむ、中二病も大事なのだ。世界を変えるくらいの気構えを持つべし!
0023デフォルトの名無しさん2014/02/07(金) 23:46:16.72
>>19
「何か」が「論文を書く」だからな…
0024デフォルトの名無しさん2014/02/10(月) 13:33:15.35
違うなあ
何か?に対して、かくかくだよぉーん
とする、させることを概念化することだな
視座なくして 何か?なんて意味がない。

それ自体の意味、本質!

なんていやつは形而上学まみれの科学もどき
0025デフォルトの名無しさん2014/02/10(月) 18:19:54.69
それ以前に日本語になってないだろ…
0026デフォルトの名無しさん2014/02/10(月) 20:51:00.62
典型的な酔っ払いのレス
0027デフォルトの名無しさん2014/02/11(火) 04:25:34.99
そう、聞こえるのは薄っぺらな哲学音痴ならでは
0028デフォルトの名無しさん2014/02/12(水) 03:17:18.91
完全に狂ってますねk
0029デフォルトの名無しさん2014/02/12(水) 06:22:07.95
What is X?
が自体的に成り立つなんて思ってるお馬鹿がまだまだうじゃうじゃだな
0030デフォルトの名無しさん2014/02/12(水) 10:00:42.24
>>29
relation とかなんとかですか?もうききあいたよ
0031デフォルトの名無しさん2014/02/12(水) 10:10:58.59
>>30
ききあきたけど
わかってないままなのね
0032デフォルトの名無しさん2014/02/14(金) 03:03:28.64
picrin は名前が可愛い。
0033デフォルトの名無しさん2014/02/14(金) 20:23:07.11
わかる。
0034デフォルトの名無しさん2014/02/15(土) 12:02:48.39
最近、形式言語から理解したくて集合論を調べてて
Lispってまんま集合論で、すごい発想はなにもなくて
証明されてるものを実装したってだけに感じて
Lispのみならず、データ構造などの概念の多くは集合論から端を発しているものが多く
理解するには集合論について理解を深めることが肝心と思っけど
そういうことに言及する人とか本とか少ない気がするのね
Lispを使う人々は、教える人も教わる人も、
集合論などはなっから理解してる本業の人たちばかりだから
あえて明示的に指摘しないのかなとも思うけど
そういう資料があれば、理解が深まるし誰にでも確実に理解できていいと思うんだけどな
0035デフォルトの名無しさん2014/02/15(土) 13:18:50.73
そりゃまあ、形式的に何かやろうとしたら集合論の上に乗っけるのが普通だろ。
それでも集合論とMcCarthyのLispの間にはかなりの飛躍があるので、
「すごい発想はなにもなくて」ってことはない。
McCarthyのLisp以前の話なら計算模型(オートマトンとかラムダ計算とか)の教科書を読んどくといい。
McCarthyのLispが導入したものが何なのか知りたいならMcCarthyの論文を読めばいい。
McCarthyのLisp以降の話ならプログラム意味論に行くといい。
0036デフォルトの名無しさん2014/02/15(土) 14:19:58.36
>>35
俺には雲の上の話だな
いま、rplacd使ってセルのつながりを変えるところに進んだ。
Lispは楽しいな
0037デフォルトの名無しさん2014/02/15(土) 21:59:01.69
>>35
ありがとう助かった
データ構造と集合論との関係とかは、プログラム意味論に当たるんだね!
暗黙のうちに理解される自明なことで、あえて書いてくれないのかと思ってたよw
あとさ、McCarthyさんのすごかったところは、それこそプログラミング意味論的なものなんじゃないかなとも思うけど
まぁとにかくその辺り勉強して論文を読んでみるとする
0038デフォルトの名無しさん2014/02/15(土) 22:18:13.80
ゲーデル・エッシャー・バッハとかは?
0039はちみつ餃子 ◆8X2XSCHEME 2014/02/15(土) 22:47:29.03
>34
理解しなくても使えるからだと思う。
「本業」ってどういうのを想定してる?
理論を表現するために LISP を使うスタンスとプログラミング言語としか見ないスタンスが有って、
後者の方が多数派ってことなんじゃないかな。
0040デフォルトの名無しさん2014/02/15(土) 22:49:36.73
はちみつ見るの久しぶり
俺はLispを柔軟に書けるて実行速度がそれなりに速い言語としか見てないよ
0041デフォルトの名無しさん2014/02/15(土) 22:58:33.47
現実を抽象化し、そのデータを処理する事を考えるのに、
手続き的な思考と、集合論的な思考と、どっちが馴染むか。
手続きで考えた方が良い場合もあるし、宣言的に考えた方がいい場合もある。
今目の前の問題はどちらだろうか。
という選択があるのかないのかで話はけっこう違うんじゃないか。

数学は現実を記述するための言語なのだから、
理論を表現しても「それが何の役に立つ?」という話になるし。
0042デフォルトの名無しさん2014/02/15(土) 23:49:34.62
>>34が本当に必要だったもの
ダイクストラ/ホーア/ダール「構造化プログラミング」
0043デフォルトの名無しさん2014/02/16(日) 09:49:18.86
>>34
あなたは素晴らしい。才能がある。
技巧だけではなく理論面も掘り下げていってほしい。
昔のLisperは理論、実装ともに堪能な人が多かった。
最近はそういう人は少なくなった。
0044デフォルトの名無しさん2014/02/16(日) 11:24:16.29
酷い自演を見た
0045デフォルトの名無しさん2014/02/16(日) 12:12:44.97
call/cc
0046デフォルトの名無しさん2014/02/16(日) 12:21:17.85
>>43
そうかも

でも、全然駄目かも

頭は良くても態度に問題が
それが実践でどうでるかだな

また、それは社会関係だけでなく能力の伸び代も大きく規定するし

さーて、どうかなあ
0047デフォルトの名無しさん2014/02/16(日) 12:23:05.21
俺は演繹的宣言の態度がダメだと思う
0048デフォルトの名無しさん2014/02/16(日) 13:36:34.99
>>37
データ構造を集合として扱い、ラムダ式(関数)を集合間の対応(写像)として
数学的な(=形式的な)意味を定義しようとする試みは、昔から行われていた
しかし、ラムダ式の自己適用(ラムダ式を入出力とするラムダ式)で起こる
論理的矛盾の解消が壁になっていた
具体的には、計算対象を集合 D とすると、ラムダ式の自己適用は
D = D -> D で表されるけど、数学的常識的には D の濃度は
D -> D の濃度よりも小さくなければならないから等式が成立しない
これを解決したのが、D.スコットによる領域理論(domain theory)になる

領域理論については、以下の書籍が日本語で書かれた良い入門書になる
・プログラム意味論 (情報数学講座): 横内 寛文
 http://www.amazon.co.jp/dp/4320026578/
また前述の領域理論が生まれた背景は、以下の古い書籍から引用したもの
・岩波講座 情報科学〈12〉算法表現論 (1982年): 木村 泉, 米澤 明憲
 http://www.amazon.co.jp/dp/B000J7P0KY/

あと、理屈(理論)は大切だけど、実践はもっと大切だよね!!
もしも未読であれば、ぜひともSICP本を読まれることを薦める
0049デフォルトの名無しさん2014/02/16(日) 15:11:42.17
あと『数理情報学入門: スコット・プログラム理論』
0050デフォルトの名無しさん2014/02/16(日) 16:19:39.69
中二病は夢があってほほえましいが
高二病はあまり役に立たない直ぐにでも治療が必要
0051はちみつ餃子 ◆8X2XSCHEME 2014/02/16(日) 17:23:19.06
数学板でやればいいんでないの。
ム板でそんな話しても相手にされなくてあたりまえだろ。
0052デフォルトの名無しさん2014/02/16(日) 17:28:57.66
形式手法を学ぶなら今でしょ、というご時世だというのに何言ってるんだか
0053デフォルトの名無しさん2014/02/16(日) 18:12:36.53
ム板の話ではないという話をしてるのに時流がどうとか言いだす話が通じないやつ〜
0054デフォルトの名無しさん2014/02/16(日) 18:21:18.04
長文さんが来てくれるとスレが盛り上がってひじょうによろしい
ぜひづづけてくれないかね
0055デフォルトの名無しさん2014/02/16(日) 18:44:06.23
プログラミング技術において形式手法は、今後必要になることが増えることはあれ、
減ることはないだろう。それを「ム板の話ではない」と決めつける理由は、老害脳以外に
無いと思うが、まぁ老害ならばしかたないな。
0056デフォルトの名無しさん2014/02/16(日) 19:05:14.55
プログラミングに必要っていうのは否定しないよ。
だからといって何もかもム板でやってよいというのは暴論だろ。
ゲーム制作やウェブ制作だって別板なんだぜ?
0057デフォルトの名無しさん2014/02/16(日) 19:11:47.52
>>56
ならば、以後、はちみつはプログラミングとは無関係なウンチク語りを一切禁止な
0058デフォルトの名無しさん2014/02/16(日) 19:16:33.59
はちみつさんはうんち食ったりそれを誇らしく語ったりなんかしねーよ
0059デフォルトの名無しさん2014/02/16(日) 19:19:15.00
おいやめろ
0060デフォルトの名無しさん2014/02/16(日) 19:33:09.85
プログラム作ってるのに、情報科学専攻しなかったのが遠回りだったと言っているように聞こえる。

小学生みたいに手続き型のプログラム知らない人のほうが、lisp理解してもらいやすかったというのもあるぐらいだし、
理論から入った方がいいかは、人によるんじゃないか?

最近はネットで講義を公開してるから、理論からの方が納得出来ると思ったら履修するといいんじゃないか。
https://www.coursera.org/course/automata
0061デフォルトの名無しさん2014/02/16(日) 20:00:43.35
>>60

なんでそっちに行くんだ?
こっちだろ。
http://takeichi.ipl-lab.org/lecture/computation-model2004/Scott.pdf
0062デフォルトの名無しさん2014/02/16(日) 20:13:38.63
Lispを布教したいと考える立場からすると、
そういう理論から入ろうとするのは余計なハードルじゃないか。
よりよく使うには理論があった方がよろしいというのはわかるが、
まずLispを使おうという人がそんなに多くない状況なんだから、
もっとキャッチーなキラーアプリとか使い易さでアピールする方がいいよ。
0063デフォルトの名無しさん2014/02/16(日) 20:19:22.95
あれ?
はじめは、チューリングマシンとその他の計算モデルの等価性からかなと。
0064デフォルトの名無しさん2014/02/16(日) 20:40:08.70
まずは使い勝手が意外とよいところを知ってもらうところから始めるというのは賛成だな。
理論が実用の役に立つという意識付けというか目的意識があった方がモチベーションに繋がるから、
先に実用が有った上でこういう理論が当て嵌められるよっていうのがあると良さそう。

理論なんて実用されなきゃただの難しいパズルだもん。
パズルが悪いわけじゃなくてそれはそれで尊重はするけど、プログラミング言語はエンジニアリング寄りのものだしさ。
現実と理論が乖離してたときにどっちが正しいと思う? そりゃ現実が正しくて理論が間違ってる。
エンジニアリング的視点に立つなら理論背景は後回しにするのが合理的だと思う。
0065デフォルトの名無しさん2014/02/16(日) 21:37:29.25
そんなのは「ラッキーでうまくいつちまった」って感じのもので
俺派仮にうまく行っててもそれでいいとも思えないな
0066デフォルトの名無しさん2014/02/16(日) 22:07:39.00
Lispを布教とかどうでもいいよ
今後Lispの替わりが出てくるとも思えないし
0067デフォルトの名無しさん2014/02/16(日) 22:48:18.16
そんなこと言ってていいのか
足元巣食われるんじゃないのか
0068デフォルトの名無しさん2014/02/16(日) 22:50:20.49
javascriptに食われそう
0069デフォルトの名無しさん2014/02/16(日) 22:59:44.95
既にXMLでこてんぱんじゃないの
0070デフォルトの名無しさん2014/02/16(日) 23:09:56.70
抽象化の土台として理論があるんじゃないだろうか。
数学の問題の解き方を覚えるのと、数学を理解するのとは違うわけで。
0071デフォルトの名無しさん2014/02/17(月) 00:41:54.41
なんでもかんでもLisp系でやらなくても良いし、Lisp系使わなくても良い。
悟りを開くためにやる言語だとか言われてたよね。
非Lisperな対してはそんなスタンスで良いんじゃないかな。
じゃあ理論的な部分抜きで悟れるのか?って話になるよね。
0072642014/02/17(月) 08:53:08.39
>>65
誤解があるみたいだけど、理論が要らないと言ってるわけじゃないよ。
どうして上手くいったのか、上手くいかなかったのかということに解は必要だ。
だけど、上手くいった体験を持たずに理論が先行するのがよくないと言ってんの。
0073デフォルトの名無しさん2014/02/17(月) 09:56:53.49
WS-* で死屍累々のXMLゾンビかよ >>69 はw
0074デフォルトの名無しさん2014/02/17(月) 10:36:07.01
こんな話をしてるのが無駄だろ。
いいから数学板へ行けよ。
なんでそう頑にム板でやろうとすんの。
0075デフォルトの名無しさん2014/02/17(月) 10:42:46.45
理論なんか無くていいと思ってるおまえが無駄。
いいからこのスレから消えろよ。
なんでそう頑にスレを自分の思い通りにしようとすんの?
0076デフォルトの名無しさん2014/02/17(月) 11:10:40.16
>>75
無くていいとは言ってなくて、この板でやるべきじゃないという話なのになんでそうなるの?
0077デフォルトの名無しさん2014/02/17(月) 11:12:16.64
>>75
そうやって故意に話を捻じ曲げて相手を悪者にする論調は何なの?
それで得することあるの?
数学板が機能してないクズの集合体だからこっちでやりたいの?
ちょっと理由を言ってみてくれんか。
0078デフォルトの名無しさん2014/02/17(月) 11:22:41.58
数学板は AA 荒らしが多いな。 実際にはそれをやってるのは一部なんだろうが…。
あれは話題に付いていけない人が多いからという説が有力視されてる。
初心者を置いてけぼりにする感じが駄目なんだな。 ム板の殺伐さとはまた違ったハードルだと思う。

わかっている人たちで議論してより高度な知識を得たいとかいうのなら2chは向いてないよ。
「初心者の方が多い」という現実があって、ゆるいところから入門してだんだんステップアップするもんだろ。
そんでもって2chはその「ゆるいところ」であるべきだろ。
だから最初にやっかいな理論を持出すようなことはすべきじゃない。
質問があれば必要なところに誘導すれば充分だろ。
0079デフォルトの名無しさん2014/02/17(月) 12:47:09.01
わからないんだよぉ
でちまうよぉ

       。ρ。      
         ρ      
         mドピュッ
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ 〜
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  ) 〜  
     ./  _  ゝ___)(9     (` ´) ) 〜  
    /  丿ヽ___,.───|彡ヽ   へ へ|  〜 
    _/ )          (   Y ̄ ̄ ̄ ̄) 〜 
   (__/
0080デフォルトの名無しさん2014/02/17(月) 17:44:26.64
板違いというなら適切なスレを教えてくれ
0081デフォルトの名無しさん2014/02/17(月) 18:23:28.69
誰か数学板に、Haskellを学べば東大女とやれるって書いておけ
数学科を出て、コールセンターで働く不幸な人が絶えまない。
0082デフォルトの名無しさん2014/02/17(月) 20:53:08.67
やるべきではない?その根拠は何だろう?
理論抜きになんのプログラムの話が出来るんだ?
0083デフォルトの名無しさん2014/02/17(月) 21:05:02.77
程度問題だろ。
0084デフォルトの名無しさん2014/02/17(月) 21:07:17.79
>>78
甘えんじゃねえ
0085デフォルトの名無しさん2014/02/17(月) 21:11:10.50
まあ精根尽きるまで駄々をこねてればいいよw
0086822014/02/17(月) 21:12:13.66
>>78
なるほど。
しかし、何でも君の「べき」に付き合わなきゃならないのかい?
0087デフォルトの名無しさん2014/02/17(月) 21:26:11.86
そもそもみんなちゃんと r5rs ですら仕様の意味論の部分読めてるのか?
うちの院卒の新人に聞いてみたが、一人もまともに説明できなかったぞw
0088デフォルトの名無しさん2014/02/17(月) 21:45:32.25
プログラマにそれが必要か? いや、わからないよりわかる方が良いというのはわかるよ。
0089デフォルトの名無しさん2014/02/17(月) 21:55:23.84
そうは言ってもどうせそんなに頻繁にややこしい話は出ないから好きにすりゃいいんじゃね。
ただ、みたいにLISPERなら理論面もわきまえてて当然というスタンスは駄目だろ。
間口を狭めるだけ。
0090デフォルトの名無しさん2014/02/17(月) 22:23:21.50
>>89
そうは言ってもどうせそんなに頻繁にややこしい話は出ないから好きにすりゃいいんじゃね。
ただ、みたいに:

  LISPをプログラミング言語としか見ないスタンスが多数派なのだから
  意味論を含む理論に関した話題は板違いであり、数学板でやるのが

当然というスタンスは駄目だろ。
間口を狭めるだけ。
0091デフォルトの名無しさん2014/02/17(月) 23:27:06.38
おれはlisp に絡んでりゃ何でも良い、ってスタンス。
だいたい掲示板なんだから、誰かが面白そうな話してりゃ絡めばいいし、
そうじゃなければスルーするか、自分が面白い話提供すりゃいいよ。
0092デフォルトの名無しさん2014/02/17(月) 23:58:07.73
PyPy
https://github.com/samth/pycket
ErlangVM
https://github.com/erlware/joxa
https://github.com/rvirding/lfe
ErlangVMで実用的な言語あれば使いたいという人は増えてる気がする
0093デフォルトの名無しさん2014/02/18(火) 07:17:30.72
間口を広げるべきだというのもドグマだろ。
俺は理論語れるほどじゃないが、語ってる人が居ても良いと思うぞ。
0094デフォルトの名無しさん2014/02/18(火) 07:51:35.80
つまり、リップキスもLisp方言だからディープキスの話題でもいいのかな
0095デフォルトの名無しさん2014/02/18(火) 09:13:26.42
あすみんの話題も有りってことか。
0096デフォルトの名無しさん2014/02/18(火) 09:56:31.78
それは流石に、仕様書に載ってたり、実装されてたりしないような?
0097デフォルトの名無しさん2014/02/18(火) 14:37:24.88
初テキストの「リスト遊び」をそろそろ終えられるので
「リスト遊び」の著者が推薦している(オーム社版の)「Scheme手習い」注文した。
Lispって楽しいな。
Lispでアウトラインプロセッサ作ろうと思ってって始めたけど、その前にLisp自身を作ることになるかな。
ま、いいや。
0098デフォルトの名無しさん2014/02/18(火) 17:07:07.00
>>92
Erlang上で動くProlog処理系おしえて(;´Д`)
前に探したけど、見つからなんだ
0099デフォルトの名無しさん2014/02/18(火) 17:12:19.71
>>87
下らないことで偉そうにしてる人って居るよね
そのぐらいしか人生で自慢することがなくって、心の支えにしてるんだろうから、
そっとしておいてあげよう
0100デフォルトの名無しさん2014/02/19(水) 14:32:53.88
だれかー
Lisp の字句解析教えてー
Lispのシンボルは数字が先頭ってこともあるじゃん?
そこがどうすればいいのかわからん。
0101デフォルトの名無しさん2014/02/19(水) 15:12:02.58
数値としておかしかったらシンボルにすれば
0102デフォルトの名無しさん2014/02/19(水) 16:10:43.37
頭良い
0103デフォルトの名無しさん2014/02/19(水) 16:11:03.17
意味解析までシンボルのままじゃだめなん
0104デフォルトの名無しさん2014/02/19(水) 16:15:23.53
頭良い
0105デフォルトの名無しさん2014/02/19(水) 21:52:18.26
セルって car cdr それぞれを指すの?
それとも その二つどちらもあわせたデータ構造を指すの?
0106デフォルトの名無しさん2014/02/19(水) 22:26:29.03
コンスセル、ドット対、ペア

「セル」とはあまり言わないんじゃないかな
0107デフォルトの名無しさん2014/02/19(水) 22:28:36.27
LISPでいうセルはcar cdrの2つのペアと決まっとる
例外なくな
0108デフォルトの名無しさん2014/02/19(水) 22:34:05.22
car cdr
この2つの発明により、LISPはマジョリティの道から外された
CommonLispは必死に抵抗したが、結局car cdrには勝てなかった
0109デフォルトの名無しさん2014/02/19(水) 22:58:04.57
セルとドット対はちゃうぞ
セル(またはコンスセル)のCDR部が他のセルへのではなくnilを除くatomへのポインターをもつとき、リスト表現できずにドット対表現される。


なお、リストはドット対表現可能。
(1 ) → (1 . nil)
0110デフォルトの名無しさん2014/02/19(水) 23:00:55.22
コンスセルとドット対は一緒じゃないの?
01111102014/02/19(水) 23:02:55.38
コンスセル=ドット対の特殊なものがリスト、だと思ってる
0112デフォルトの名無しさん2014/02/19(水) 23:05:42.48
リストなるものは、正確にはリスト表現なるものは、
セルのCDR部によってリンクされる各セルのCAR部がポイントするデータを羅列しカッコでくくったものだな
式としてのリストは存在しても実体としてリストなんてものはない。
あるのはセルとアトムだけだ。
0113デフォルトの名無しさん2014/02/19(水) 23:06:18.46
>>110
ちゃいます
0114デフォルトの名無しさん2014/02/19(水) 23:09:46.17
>>113
具体例出せる?
0115デフォルトの名無しさん2014/02/19(水) 23:11:38.08
マッカーシー
http://wbb.forum.impressrd.jp/feature/20071212/515
http://www.inamori-f.or.jp/laureates/k04_a_john/img/lct_j.pdf

この講義資料、改変と再配布を認めますってかいてあるんだ。
http://www-ui.is.s.u-tokyo.ac.jp/~hara2001/scheme/
0116デフォルトの名無しさん2014/02/19(水) 23:19:59.74
http://clhs.lisp.se/Body/26_glo_d.htm
用語はハイパースペック見るのが正しいな
0117デフォルトの名無しさん2014/02/19(水) 23:21:14.93
ドット対は外部表現の名前って感じかな。
0118デフォルトの名無しさん2014/02/19(水) 23:23:33.24
>>114
コンスセルは表現ではなく実体。
ドット対とはあくまでドット対表現の意味
セルの表現にドット対表現とリスト表現がある。

あるセルのCDR部は、たかだか一つのセルまたはアトムしかポイントしない。

しかるにドット対表現では
(1 . (2 . (3 . nil))) のごとくセルのリンクを、そのCDR部に表現可能であり、いかなるリンクにてあるかを、たかだか1つのドット対表現から知ることができる。
しかし、セルをいくらみても
CAR部とCDR部のポインターの先を見られるだけで、先の先については何も知ることができない。

片や実体、片や表現。
Cellとdotted pairは同じものではない
0119デフォルトの名無しさん2014/02/19(水) 23:46:00.66
あらためて Scheme の規格を読んでみると cell って言葉は出てこないな。
cell に相当する用語は pair ということになると思うが、
pair は dotted pair とも呼ばれると書いてあるから同じものという扱い。
表現方法のことは dotted notation という用語になってる。

Lisp 族でも物によって多少ニュアンスが違ったりすることはあるんじゃないの。
0120デフォルトの名無しさん2014/02/19(水) 23:50:34.84
ペアってのはcarとcdrの両方にアトムが入っているやつだろ?
0121デフォルトの名無しさん2014/02/19(水) 23:53:11.69
ちがう
0122デフォルトの名無しさん2014/02/19(水) 23:54:03.25
>>107 のいうペアは型としてのいわゆるペアとは違うのでは?
0123デフォルトの名無しさん2014/02/20(木) 01:13:19.95
ああ、通常の単語としてのペアか
0124デフォルトの名無しさん2014/02/20(木) 05:37:24.49
>>118
理解した、サンクス。
0125デフォルトの名無しさん2014/02/20(木) 12:00:59.70
LispでいうObjectってなに?
0126デフォルトの名無しさん2014/02/20(木) 12:15:49.78
どの標準で?
0127デフォルトの名無しさん2014/02/20(木) 13:24:30.48
Object指向って意味でないやつ
0128デフォルトの名無しさん2014/02/20(木) 13:33:15.81
LispとかけてObjectととく
そのこころは
聞いたことあらへんな
0129デフォルトの名無しさん2014/02/20(木) 16:31:45.05
Lispの実装についてプログラム終了時のメモリ開放は明示的にするべきでしょうか?
または、OSに任せてよろしいでしょうか?
0130デフォルトの名無しさん2014/02/20(木) 16:40:49.40
メモリに限らず、Unixのプロセスが持っているファイルディスクリプタなどのように
OSが解放することが保証されている資源で、プログラム=プロセスという形で
対応させてるなら、それで良い。
0131デフォルトの名無しさん2014/02/20(木) 17:01:32.60
CtrlキーはAの横に位置し、小指で押すものなんだと、
そう考えている時期が僕にもありました。
0132デフォルトの名無しさん2014/02/20(木) 17:03:55.06
左右の小指の付け根で押す方が圧倒的に楽
0133デフォルトの名無しさん2014/02/20(木) 17:07:04.00
親指で押したほうが圧倒的に楽
0134デフォルトの名無しさん2014/02/20(木) 17:08:44.32
それ、なんてキーボード?
0135デフォルトの名無しさん2014/02/20(木) 17:13:34.75
日本語キーボードの変換と無変換をctrlに割り当ててる
0136デフォルトの名無しさん2014/02/20(木) 17:26:48.92
俺も小指の付け根派だな
無変換にはシフトを割り当ててる
0137デフォルトの名無しさん2014/02/20(木) 17:27:28.50
ctrl + Alt + qが押し辛いから却下
0138デフォルトの名無しさん2014/02/20(木) 17:27:29.50
小指の付け根で押しやすいキーボード教えて
0139デフォルトの名無しさん2014/02/20(木) 17:28:52.03
>>138
Dellの日本語キーボード。左右にCtrlキーとAltキーが配置してるやつ
0140デフォルトの名無しさん2014/02/20(木) 19:27:46.07
Aの左にCtrl
神が決めた宇宙の真理
0141デフォルトの名無しさん2014/02/20(木) 19:35:01.69
小指が痛くなるのも神の御意のままに
0142デフォルトの名無しさん2014/02/20(木) 19:40:06.46
カーちゃん、クダーらねえよ
0143デフォルトの名無しさん2014/02/20(木) 19:40:41.01
そりゃコンスしました
0144デフォルトの名無しさん2014/02/21(金) 01:24:44.86
lisp マシンのキーボードってどんなだっけ?
0145デフォルトの名無しさん2014/02/21(金) 01:52:19.57
ググれよ
https://www.google.co.jp/search?q=lisp%E3%83%9E%E3%82%B7%E3%83%B3+%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89&;tbm=isch
0146デフォルトの名無しさん2014/02/21(金) 13:55:40.26
今日勉強したこと

;;;リストの最後のセルへのポインターを得る
(defun lastcell (lst)
(while (cdr lst)
(setq lst (cdr lst)))
lst))
0147デフォルトの名無しさん2014/02/21(金) 14:26:07.44
そうか
0148デフォルトの名無しさん2014/02/21(金) 14:30:38.80
標準でwhileが入ってるのってallegroclとemacslispくらいだろ
0149デフォルトの名無しさん2014/02/21(金) 14:49:40.55
そうなんですか、じゃ再帰で書いてみました
チラシの裏の勉強スマン

(defun lastcell (lst)
(cond
((null lst) nil)
((null (cdr lst))
lst)
(t (lastcell (cdr lst)))))
0150デフォルトの名無しさん2014/02/21(金) 14:58:30.26
>>149
(cdr nil) → nil
であることを考えると
((null lst) nil)は不要だな
自己レス、やめます。スイマセンでした
0151デフォルトの名無しさん2014/02/21(金) 17:33:02.50
今晩のお勉強、束縛。
俺の部屋に直子を今晩束縛してくれ
0152デフォルトの名無しさん2014/02/21(金) 18:25:34.09
>>151
何故か「直子の代筆」と言う商品が想起された
0153デフォルトの名無しさん2014/02/22(土) 14:46:32.79
「束縛する」というのは便利だな。
いちいち「変数xに××へのポインターセットし」と言わずに「変数xに××を束縛し」で済む。
(束縛の意味を誤認しているかもしれないけれど)
0154デフォルトの名無しさん2014/02/22(土) 15:08:37.68
Y Combinator共同創設者のP・グレアム氏、代表を辞任 - CNET Japan
http://japan.cnet.com/news/business/35044266/
>外国語訛りの英語や女性起業家に関する同氏の最近の発言はいささか物議を醸したが
何かあったの?
0155デフォルトの名無しさん2014/02/22(土) 16:24:44.77
>>154
それに関するポールのコラムにリンク貼ってあるじゃん
0156デフォルトの名無しさん2014/02/22(土) 18:57:21.08
>>148
Gaucheにもwhileあるよ。
0157デフォルトの名無しさん2014/02/22(土) 21:09:55.17
これからは世界の料理ショーに専念するんだな。
0158デフォルトの名無しさん2014/02/22(土) 23:04:58.59
そのボケは若い子には分からんのとちがうか
0159デフォルトの名無しさん2014/02/22(土) 23:40:09.75
>>154
shiro さんがそのことについて言及してるな。
http://blog.practical-scheme.net/shiro/20130910-do-your-homework
0160デフォルトの名無しさん2014/02/22(土) 23:59:54.94
Y Combinator はデコイ
0161デフォルトの名無しさん2014/02/23(日) 02:45:28.89
Υコンビネータの時代が来るね
0162デフォルトの名無しさん2014/02/23(日) 10:33:49.88
>>153
見事に誤認してる。
ポインターとか考えてたらはまるだけだから。
0163デフォルトの名無しさん2014/02/23(日) 12:02:36.89
>>162
見事な正解を教えてくれ
0164デフォルトの名無しさん2014/02/23(日) 13:09:29.45
考えるなって言ってるじゃん
0165デフォルトの名無しさん2014/02/23(日) 17:19:31.41
>>164
お馬鹿だったのね
0166デフォルトの名無しさん2014/02/23(日) 17:33:49.58
>>154
アメリカもマスコミはマスコミということか
0167デフォルトの名無しさん2014/02/23(日) 23:20:42.25
>>159
ありがとう。そういうことだったのか。
0168デフォルトの名無しさん2014/02/24(月) 18:40:56.59
>>163
束縛は束縛だよ。 いわば定義なので、束縛に束縛以外の意味などない。
実装レベルの話なら別だけどさ。
0169デフォルトの名無しさん2014/02/24(月) 19:34:32.74
紐付けか関連付けかくらいに思っとけばいいんじゃないの
0170デフォルトの名無しさん2014/02/24(月) 19:57:27.40
>>153
逆で
データに変数を束縛だな
0171デフォルトの名無しさん2014/02/24(月) 21:00:15.91
緊縛変数
0172デフォルトの名無しさん2014/02/27(木) 22:05:29.64
初心者がコンテナを関数で渡そうとしてはまるパターンだな
束縛そのものに実体は無い
束縛先を変えるしかない
0173デフォルトの名無しさん2014/02/27(木) 22:11:18.38
例えばヤンキーに束縛されている女がいたとする
そのヤンキーと女との束縛関係には実体がない
がヤンキーは確実にその女を束縛できる
女は他者によって自分を変えることはできても
ヤンキーからの束縛からは自主的に逃れられない
ヤンキーが飽きるか死ぬまで女は束縛され続ける
0174デフォルトの名無しさん2014/02/27(木) 22:37:41.86
仮にヤンキーが死んだ場合、女も道連れで一緒に死ぬ
ヤンキーに見放された場合も女は孤立して静かに死ぬ
女が生き残るには、ヤンキーと別れる前に
他のイケメンによって束縛されなければならない
女は束縛され続けることでしか生き残れないし生きる術を知らない
逆にヤンキーとイケメン達で女を共有することも可能である
0175デフォルトの名無しさん2014/02/27(木) 22:53:52.07
女は束縛され続けなければ生き残れないと書いたが
稀に他の女と結託することで保護を受けられる場合がある
そうやってうまいこと他の女を盾にしていけば
その女は束縛関係を生きながら断ち切ることができるかもしれない
そのことを最後に付け加えておく
0176デフォルトの名無しさん2014/02/27(木) 22:59:57.50
この前そういうドラマやってた
0177デフォルトの名無しさん2014/02/28(金) 14:50:13.88
勉強してる
何のためにはじめたのか覚えてはいるけれど、それは少しどうでも良くなってCommon LispやSchemeに親しむこと自体が楽しみになってきた。
そのうちCISPも読んでみよう。
仕事にはならないだろうけどね
0178デフォルトの名無しさん2014/02/28(金) 19:55:24.10
>>177
>CICP
SICP?

>仕事にはならないだろうけどね
この一行を思いつきもしなくなったら本物
0179デフォルトの名無しさん2014/02/28(金) 20:48:23.55
>>178
仕事によるんじゃないのかなー?
0180デフォルトの名無しさん2014/02/28(金) 21:07:05.66
食品系のライン作業者
0181デフォルトの名無しさん2014/02/28(金) 21:56:30.49
ライン作業をlispで解決出来たら本物
0182デフォルトの名無しさん2014/02/28(金) 22:04:37.89
lispはORツール揃ってるからな
工場のシステムは30年前からそのまま動いてたりするから、ナメたらあかんぜよ
0183デフォルトの名無しさん2014/02/28(金) 23:05:52.92
ラインの作業者にシステムの保守をやらせてくれるわけがない
0184デフォルトの名無しさん2014/03/01(土) 11:23:56.28
typed racketが超高速化したみたいなんだけど
ソースコードをいじって遊べるほど安定化はしてるんだろうか
0185デフォルトの名無しさん2014/03/01(土) 11:54:07.04
typed racketの実装をいじって遊んでる間に
本家側のリポジトリが超進化してしまって整合性とれないような
そういう段階なら、まだ手出ししたくない
いつごろ安定するのだろう
0186デフォルトの名無しさん2014/03/01(土) 15:27:42.80
いつまでも発展し続ける。
0187デフォルトの名無しさん2014/03/02(日) 23:49:42.37
継続すげー これだけでもSCHEE最強
0188デフォルトの名無しさん2014/03/03(月) 01:13:22.69
シェー?
0189デフォルトの名無しさん2014/03/03(月) 01:19:16.11
Shen
0190デフォルトの名無しさん2014/03/03(月) 05:02:12.40
継続は確かに面白いけど、scheme で面白いのはあとはマクロくらい。
Haskellも勉強しているんだけど、あっちには圏論をバックグラウンドとした未踏の世界が相当広がっている。scheme って良くも悪くも、すごく単純な世界だよね。
0191デフォルトの名無しさん2014/03/03(月) 14:04:30.45
Scheme でも静的型や型推論、 Haskell 風のクラスシステムは出来なくはない。
(語彙をまるごと用意しないといけないのであえて Scheme でやるのは馬鹿げているけど、
Haskell 処理系が登場する前にプロトタイプを記述する目的でなら Scheme は有用だったかもしれない。)
そういったパラダイムを言語ユーザが欲っしたときに邪魔するものが無いようにというのが Scheme の思想なので、
言語自体が何らかのパラダイムに強く縛られるのは望ましくない。
0192デフォルトの名無しさん2014/03/03(月) 15:13:47.44
それならschemeというかlisp方言全般で言えるな
0193デフォルトの名無しさん2014/03/03(月) 19:02:29.35
Clojure は楽に書ける Java って感じ。
0194デフォルトの名無しさん2014/03/03(月) 19:37:14.44
第一級継続は Ruby や JavaScript の一部の実装にも有るし、
陽でない (処理系の内部構造で) 継続のようなものを持っている言語処理系はそんなに珍しいことでもない。
起源は Scheme なんだろうし、後の色々な言語に影響も与えたのは間違いないけど、
今では他の言語と比べて第一級継続があるから凄いということもないと思う。

それよりも、第一級継続を元にしてバックトラックさせたりコルーチンやらジェネレータに応用したりする枠組みを
作ることが出来るという抽象化の能力こそ Scheme の素晴らしさだと思う。
0195デフォルトの名無しさん2014/03/03(月) 19:45:28.74
HASKELLのcallCCは?
0196デフォルトの名無しさん2014/03/03(月) 19:58:18.66
Haskell のは名前こそ callCC だけど call/cc とは使い方が違うよ。
0197デフォルトの名無しさん2014/03/03(月) 21:36:19.40
>>194
バックトラックやコルーチンが実装できるのは確かに面白いと思った。でも、それらはもう何年も前からある、継続の利用例だよね。他には継続の使い道、あるのかなぁ。煽りじゃなく純粋に知りたい。
0198デフォルトの名無しさん2014/03/03(月) 23:07:15.56
第一級継続は重要ではないと言ってるんだが、伝わってなかったかな。
プリミティブな機能を抽象化の壁で覆う力が強いということを強調したつもりなんだが。
0199デフォルトの名無しさん2014/03/03(月) 23:19:45.25
制御構造とは何なのか、という叩き台にはなっていると思う
0200デフォルトの名無しさん2014/03/03(月) 23:56:33.53
繰返しになるけど、継続は言語処理系内部では有るものなんだよ。
そういうものが有るということに気付いたというのが Scheme の成果だし、
様々な制御がどういうものであるかという「根拠」となるのが継続。

ダイクストラはプログラムの構造化を提示したが、
更にそれの基盤になる概念が継続というわけ。
例えていうなら、原子が最小の単位だと思ったら素粒子が有ったわーみたいな。

で、その継続を第一級としたのは、
現時点で未知の制御構造を導入したいとプログラマが思ったときに
それを邪魔しないようにという Scheme の基本思想を反映したものであって、
未知の何かに対して早々に決断しないという慎重さでもある。
0201デフォルトの名無しさん2014/03/04(火) 01:33:04.24
なんでschemeにはgoto(jmp)とラベルが無いのか
継続呼び出しだと内部実装的に大げさ過ぎるのが判ってるし
末尾再帰でループを書くよりもgotoで書いた方がやはり大抵の場合速いわけで
named-letなんてgotoをかえって判りにくく書いたようでやりたい事がぼやけてしまう
0202デフォルトの名無しさん2014/03/04(火) 01:39:36.08
っ マクロ
0203デフォルトの名無しさん2014/03/04(火) 01:56:32.91
土方の意見聞きました
強盗やってろ
0204デフォルトの名無しさん2014/03/04(火) 02:06:19.49
よほど手抜きされた処理系でもない限り末尾呼び出しがgotoより遅いなんてこともないしなぁ
ただの思い込みで批判されてもねぇ
0205デフォルトの名無しさん2014/03/04(火) 04:42:34.87
>>200
今は未知の、新しい制御構造が出てきたときでも継続さえあれば十分だ、としよう。でも、もしもう新しい制御構造なんてものが無いなら、継続の価値は既存の制御構造を抽象化し統一的に上手く説明できるだけ(それはそれで立派な成果だとは思うけど)になる。
で、新しい制御構造って研究されてるのか、知りたかったんだよ。
0206デフォルトの名無しさん2014/03/04(火) 10:56:35.31
新しい、ていうか、問題ごとに適応したコルーチンのようなものじゃないの?
複数の木をそれぞれ非連動で同時にたどるとか。
0207デフォルトの名無しさん2014/03/04(火) 12:16:19.46
Scheme 過去現在未来 - So-net - 豆丁网
http://www.docin.com/p-504225148.html

これを読むと継続からSchemeができたように思える
0208デフォルトの名無しさん2014/03/04(火) 13:01:10.27
>>205
そうそう。 >>206 の意見には賛同できる。
欲しい構造としてはコルーチンなんだけどインターフェイスの面で微妙に違うのが欲しかったりとか。
0209デフォルトの名無しさん2014/03/04(火) 23:41:50.44
>>204
末尾呼び出しなだけではgotoと同等にはならない。
末尾呼び出しをgotoに変換するには、更にいくつかの仮定が必要。
0210デフォルトの名無しさん2014/03/05(水) 02:18:49.27
>>209
言語仕様上、確実に末尾再帰を最適ができるように設計された言語がSchemeだろ
0211デフォルトの名無しさん2014/03/05(水) 10:27:55.01
逆に、clojure や scala は JVM の制約で末尾再帰最適化ができないと書いてあったけど、あれはなんだったのだろうか
02122092014/03/05(水) 10:38:59.19
>>210
Schemeの仕様は無限回の末尾呼び出しができることしか要求してない。
実行速度については何も言っていない。

末尾呼び出しを goto に変換できる条件のひとつは、
コンパイル時に飛び先が確定していること。
が、load だの repl だの eval だのがあると
コンパイル時に飛び先をなかなか確定できない。
だれかが上書きするかもしれないからな。

named let は上手い回避策で、
name が escape したり set! されたりしないことだけ確認すれば
飛び先が毎回同じかわかるようになっている。
これは let の scope 内だけを見れば良いから技術的にも簡単。

r6rs は library 内だけ見れば良くなっているが、
代わりに repl が消えて set! に制限が付いた。
02132092014/03/05(水) 10:43:59.48
>>211
無限回の末尾呼び出しのためには、
呼び出しの前にスタックフレームを削除しなければならない。
が、 JVM ではスタックフレームを削除するには return しなければならない。
0214デフォルトの名無しさん2014/03/05(水) 11:06:27.95
R6RS の制限はコンパイラが色々と楽になってるよな。
0215デフォルトの名無しさん2014/03/05(水) 11:29:47.99
gotoが速いとか言ってる奴を相手にする必要なし
0216デフォルトの名無しさん2014/03/05(水) 11:45:02.89
ナイーブな実装だと goto の方が速いことも有り得るだろうけど、
理屈の上では末尾呼出しと同じだよ。

>>212
飛び先が確定してなくても変換できるよ。
もちろん確定してた方が効率的なコードになるけど。
0217デフォルトの名無しさん2014/03/05(水) 11:50:42.70
トップレベルってなに?
0218デフォルトの名無しさん2014/03/05(水) 11:53:18.37
ダークコーナー
0219デフォルトの名無しさん2014/03/05(水) 12:17:26.50
一番外側の式
0220デフォルトの名無しさん2014/03/05(水) 12:43:43.49
俺のこと
0221デフォルトの名無しさん2014/03/05(水) 12:44:08.22
処理系が用意する語彙は一番外側の式と同じレベルなのか、更に外側なのか。
0222デフォルトの名無しさん2014/03/05(水) 23:37:33.04
>>216
例えば末尾文脈で (f a b) みたいな呼び出しがあったとして、
fが定数でないとすると、
- fに手続きが束縛されているか確認
- fの引数の数が正しいか確認
- 呼び出し元の駆動レコードの破棄
- 呼び出し先の駆動レコードの構築
といった処理が必要になると思うんですが、
これって削除できるんですか?
0223デフォルトの名無しさん2014/03/06(木) 01:10:13.21
>>222
一部は削除できる。
0224デフォルトの名無しさん2014/03/06(木) 01:24:14.91
>>212
それは「gotoが実現できない言語」では末尾再帰はgotoと等価ではない
と言っているのかな?
0225デフォルトの名無しさん2014/03/06(木) 01:39:20.80
>>222
駆動レコードに工夫できるケースも多いからな。
ときにはまるっきり作らなくて済むことも。
0226デフォルトの名無しさん2014/03/06(木) 10:34:40.78
>>223 >>225
「一部は」「ケースも多い」「ときには」なら、
「末尾呼び出しはgotoと同じ速度」は誇大広告じゃありませんか?

特に、駆動レコードを作らなくて済むのは、
呼び出し元が使用している駆動レコードを再利用できるときに限ると思いますが、
どこかで call/cc が使われているとその前提がくずれてしまうと思います。
つまり、実質、「いかなる手続き呼び出しも行っていない手続きの末尾呼び出し」でなければ
gotoと同等の速度が出る末尾呼び出しにはならないかと思います。

>>224
いえ、「末尾呼び出しをgotoと同じ速度にするには、他にいくつか条件が必要」と言っています。
0227デフォルトの名無しさん2014/03/06(木) 16:14:05.48
>>226
そういうことなら goto と常に同じというわけではないということは認める。

だけどちょっと反論させてもらおう。
末尾呼出しが goto と同等の速度にならないケースというのは、
末尾呼出しを goto で置換えることが出来ない使い方をしているケースなので、
goto のかわりに末尾呼出しを使う分には goto と同等の速度と言える。

変数の内容が書き換えられるかどうかは set! の対象になっているかどうかを見ればいいだけなので、
(ここでは REPL を考えない) set! されることがないなら変数を手続きが束縛しているか、
手続きのアリティがいくつかはコンパイル時に看破できる。
(goto のラベルは変数ではないので変動することはない。 書換えられることのない変数と同等である。)

その手続きを呼出す箇所でも apply でも使って動的に変動するのでもない限り渡す引数の数ははっきりしてるので、
コンパイル時にチェックは完了できる。
(goto は引数を持たない。 アリティが確定している末尾呼出しと同等である。)

駆動レコードも goto なら常に再利用しているわけだし、
再利用せずに環境を保存しておかなければならないのなら goto では表現できない (か、プログラマが陽に保存する必要がある)。
0228デフォルトの名無しさん2014/03/06(木) 16:46:00.12
なんなんだよ!
Lispの実装は簡単にできるとかなんなんだよ!
` とか , とか @ とか聞いてねえぞ!
0229デフォルトの名無しさん2014/03/06(木) 17:01:01.00
lispの実装が簡単って構文解析の手間が減るくらいだと思うんだけど
0230デフォルトの名無しさん2014/03/06(木) 17:21:25.55
だよな。
特定の規格とか考えずにとりあえずlispっぽく見える最低限のものっていうことならちょっと簡単かもしれないけど。
0231デフォルトの名無しさん2014/03/06(木) 20:48:32.57
サンプルが腐るほどあるからそういう意味では簡単だよ
0232デフォルトの名無しさん2014/03/06(木) 23:07:42.29
それは言えてる。
資料が多いのもそうだけど、実際にやってみた結果が反映されてるってのは強いよな。
0233デフォルトの名無しさん2014/03/06(木) 23:15:52.23
IBM JVMの末尾再起最適化
https://www.ibm.com/developerworks/jp/java/library/j-diag8/
loop/recurでないclojureの末尾再起は、余分なバイトコードが入ると思うのでIBMのJVMでも最適化はされない。

.netの場合は、バイトコード命令もあるけど使われず、64bitVMはJITで、F#はコンパイラがループにするらしい。
ただし、最近新しい64bitVMになったから変更があるかもしれない。
http://yone64.wordpress.com/2011/03/06/cと末尾再帰と末尾最適化/
0234デフォルトの名無しさん2014/03/07(金) 00:15:17.31
わかる。オモチャを作るのが簡単なだけで、ホンモノ作る大変さは他と変わらないよね。
0235デフォルトの名無しさん2014/03/07(金) 00:23:30.75
だってスキャナとパーザが楽なだけで、
その後の型判定、最適化、コード生成、それにエラー処理等は
他の言語と変わらないもの
0236デフォルトの名無しさん2014/03/07(金) 00:47:05.86
Schemeの数値はパースするのが面倒だけどな。
0237デフォルトの名無しさん2014/03/07(金) 00:56:55.21
Common Lisp の仕様書ってどこで手に入るの?
あと日本語訳ある?
0238デフォルトの名無しさん2014/03/07(金) 10:14:21.15
>>227
> (ここでは REPL を考えない)
これです。私が言いたかったのは。
replが存在するだけで処理系は最適化できなくなりますよね。
他に load, eval, call/cc あたりの制限も要る。

あとはまあ、だいたいいいです。
0239デフォルトの名無しさん2014/03/07(金) 14:18:47.16
REPLの無いLisp処理系なんて魅力半減じゃないか
0240デフォルトの名無しさん2014/03/07(金) 16:03:49.21
CLはREPLが大前提だけどSCHEMEは決めかねてる感じあるね。
R6RSでは無くなっちゃったし、R7RSでも微妙なポジションだし。
0241デフォルトの名無しさん2014/03/07(金) 16:43:09.60
対話環境がどうのこうのって ハッカーと画家で読んだ
0242デフォルトの名無しさん2014/03/07(金) 18:17:58.67
>>240
REPL無しを前提に最適化を行って実行バイナリ生成とかなら非常に魅力感じるんだけど、開発環境からREPL消えるとLisp系使う意味もうほとんどないよね。
0243デフォルトの名無しさん2014/03/07(金) 18:26:25.60
Lispってことに意味があるから大丈夫
0244デフォルトの名無しさん2014/03/07(金) 18:45:54.50
風邪引いた
治ったらChickenインストールするぞ
0245デフォルトの名無しさん2014/03/07(金) 22:26:26.82
Common LispはJISで規定されているんじゃなかったっけ
0246デフォルトの名無しさん2014/03/08(土) 00:33:13.12
REPL より大事なモノはない。CL はちゃんとREPLを仕様にした。SCHEME がREPL を仕様から捨てたのは、本当にがっかりした。
0247デフォルトの名無しさん2014/03/08(土) 00:49:06.04
捨てたんではなくてまだ決めてないと解釈すべきだろ。
0248デフォルトの名無しさん2014/03/08(土) 00:51:23.79
仕様にREPLがないないなら
RERL無しの高速実装版とREPL版との多様化ができてよろしい。
0249デフォルトの名無しさん2014/03/08(土) 15:56:50.17
コンピューターは常に速さを求められる
それに乗っかるソフトウェアもまた常に高速でなければならないのだよばかちん
0250デフォルトの名無しさん2014/03/08(土) 16:03:49.74
いや、そこはトレードオフだろ。
同じ条件なら速いにこしたことはないけど、
速さを犠牲にして利便性が得られるならそれもまたよし。
0251デフォルトの名無しさん2014/03/08(土) 16:07:06.62
Javaを嫌う理由って主にその辺なんだな
0252デフォルトの名無しさん2014/03/08(土) 16:28:16.40
どのへんだよ。
0253デフォルトの名無しさん2014/03/08(土) 17:49:22.41
>>249 みたいなばかちんがウザいこと?
0254デフォルトの名無しさん2014/03/08(土) 17:54:27.14
>>249
これは恥ずかしい
0255デフォルトの名無しさん2014/03/08(土) 18:02:26.82
そいつ別のスレでも「Lispは美しい」とか言ってたやつだろ
どこが美しいかは知らないらしい
0256デフォルトの名無しさん2014/03/08(土) 18:07:41.36
>>255
どれがそいつかわからん書き方が
ゴニョゴニョ
だいいち、それがかれと、どれほど断定し得るものだろうか?

そうかも、きっとそうさ、そうにちがいめえ、エヘン、そうなのでアール

↑おバカの頭の中
0257デフォルトの名無しさん2014/03/09(日) 03:52:14.42
酔っ払ってるのお前?
0258デフォルトの名無しさん2014/03/09(日) 06:21:53.63
お馬鹿にもわかりやすいように書いたわけ
そう思えなかった?
0259デフォルトの名無しさん2014/03/09(日) 09:36:34.08
バカでも解らないしバカじゃ無くてもわからんw
0260デフォルトの名無しさん2014/03/09(日) 09:43:02.12
そりゃ、よほど頭が悪いんだな
おばかの三段論法
「かもしれない、きっとそうだ、そうである」
が、君には自然なのかもな

ばかだから

わはは
0261デフォルトの名無しさん2014/03/09(日) 10:11:40.76
決めつけてる時点でおまえさんがパーなんじゃないの?
0262デフォルトの名無しさん2014/03/09(日) 10:20:30.59
かもしれない

を

きめつけ

とするあたり、もろに

おばかさんだね
もうやめや、恥さらすだけだから
0263デフォルトの名無しさん2014/03/09(日) 10:27:54.67
必死だなぁ、無駄に改行含めてマジで病院いっといで。
0264デフォルトの名無しさん2014/03/09(日) 11:57:51.85
>>263
へえ、どうして必死と評価した?
そのプロセス言ってみな

まあ、低偏差値層特有の常套文句相手にしても意味ないがな

ま、おばかの相手はここまで

それこそ必死に中身のない中傷にせいをだしていなさい。、それくらいしか出来ないんだろうから。

あれ?その頭でLispやってるの?
「関数carはリストの先頭要素を取り出す関数です」
とか思ってるレベルじゃない?
そうなら、「なるほどザおばか」
0265デフォルトの名無しさん2014/03/09(日) 12:11:43.28
つ 鏡
0266デフォルトの名無しさん2014/03/09(日) 13:15:10.53
(defun leap ( n )
(cond
((zerop (mod n 400)) t)
((and (zerop (mod n 4))
(null (zerop (mod n 100))) t)
(t nil)))

ザおばかが書いたコード
0267デフォルトの名無しさん2014/03/09(日) 13:27:18.87
おまいらID導入議論に参加しないの?
0268 ◆QZaw55cn4c 2014/03/09(日) 13:43:18.51
このスレ的にはどうでもいい
0269デフォルトの名無しさん2014/03/09(日) 13:50:45.93
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
0270デフォルトの名無しさん2014/03/09(日) 15:05:09.45
>>266
前提条件を見ることも出来ないお馬鹿をまたまた自己暴露してるな、君。

なにが目的だったか?その文脈を認識できずに,まさに木を見て森をみず、目の前の人参のごとく
「関数leap歯いかにスマートに書けるか?」
たる問題としてとらえてしまっている。
二流どころの投影的解釈そものも。

かんたんにいうとね、
君、お馬鹿さらけだし。
もう、恥ずかしいからやめな
0271デフォルトの名無しさん2014/03/09(日) 15:17:42.14
恥ずかしい誤変換を晒してしまった気分はどうだい?
0272デフォルトの名無しさん2014/03/09(日) 15:18:45.88
そもそも括弧が大くて煩わしいと言う話で
>>266の小さい子が親のマネするような滑稽なコードを平気で晒す神経がわからん
あんな小学生でも分かるような簡単な例なら括弧の多さは気にしなくていいし
そんな低レベルな話で偉そうにしてたら滑稽に見えるだけ
ところでその糞みたいなleap関数のどこが美しいの?
0273デフォルトの名無しさん2014/03/09(日) 15:42:28.00
子がよちよち歩くのを見てバカにするような親はいません
0274デフォルトの名無しさん2014/03/09(日) 15:44:59.99
俺は親じゃないし公共の場で親の真似をして迷惑をかけてたら話は別
0275デフォルトの名無しさん2014/03/09(日) 17:49:31.08
日曜日にやることがそれだけかい
0276デフォルトの名無しさん2014/03/09(日) 18:44:16.09
もはやどれが誰の書き込みだかさっぱりだわ、こういうときこそID欲しいとは思うが、普段はいらね
0277デフォルトの名無しさん2014/03/09(日) 20:05:25.15
そもそも見分けたいとも思わない程度の低いやりあいだと思うけどな。
0278デフォルトの名無しさん2014/03/09(日) 22:43:33.79
有れば有ったでいいと思うけど、面倒くさいから既にID有りのおーぷん2ちゃんねるに移動しないか
0279デフォルトの名無しさん2014/03/09(日) 23:43:45.30
チンチン、マンコにこすりつける仕事なら楽やで
「はい、次の方」 
コスリコスリ

「トピュントピュン」

「出ちゃったので今日はおしまいです。股のお越しをお待ちしております」

いいやろ、わはは
0280デフォルトの名無しさん2014/03/10(月) 01:50:21.14
>>279
一日にちょっとしか出来んやないか。
病気への警戒とかも考えるとそれなりの出費もあるで。
0281デフォルトの名無しさん2014/03/10(月) 12:57:35.19
Schemeにはnilがないんやな

(and (eq nil '())
(eq nil (not t)))

→t

になれてると手間かかるな
0282デフォルトの名無しさん2014/03/10(月) 14:06:48.21
http://toro.open2ch.net/test/read.cgi/tech/1394354216/l50
0283デフォルトの名無しさん2014/03/10(月) 15:26:28.44
この板もID導入されるみたいだしわざわざ分散するような事しないほうがいいんじゃ
0284デフォルトの名無しさん2014/03/10(月) 15:28:13.27
あふぃ
0285デフォルトの名無しさん2014/03/10(月) 15:30:46.53
おーぷんは気に食わん。
まとめの見せ物じゃないかwwwwwwwwww
0286デフォルトの名無しさん2014/03/10(月) 15:36:49.58
こんなところにも嫌儲チョンがおるんか
0287デフォルトの名無しさん2014/03/10(月) 15:42:11.22
UGは見せ物になったんだよ
0288デフォルトの名無しさん2014/03/10(月) 19:45:58.51
(define nil '())
でおk>>281
0289デフォルトの名無しさん2014/03/10(月) 19:47:10.82
あ、ブーリアンか
ブーリアンか!
このー
0290デフォルトの名無しさん2014/03/10(月) 20:20:16.52
>>285
ム板がまとめられることもそうそう無いんだからどっちでもいいんでね
0291デフォルトの名無しさん2014/03/10(月) 20:34:12.45
>>288
いや、だめだね
それすると
(eq? nil #f) → #f
となる。
要するにnilに多義性を与えられない

Scheme手習いで登場させているSchemeでは
nilを偽として使い、null listはあくまで
'()としてるな

(define nil #f)
(define t #t)
0292デフォルトの名無しさん2014/03/10(月) 20:50:23.82
(define (true? x)
(or (eq x 't)
(not (or (eq x 'nil)
(not x)
(null? x)))))

これは?
02932922014/03/10(月) 20:52:03.14
今のは無かったことにしてほしい
0294デフォルトの名無しさん2014/03/10(月) 20:55:32.53
>>290
実際にまとめられるかどうかより、
まとめありきのその思想がいやだ
0295デフォルトの名無しさん2014/03/10(月) 21:39:08.94
むしろ2ちゃんねるが独占してる方が嫌だと思う
0296デフォルトの名無しさん2014/03/10(月) 21:55:52.63
にちゃんねるに書き込むってのは便所の落書きを自称するってことなんですよおおおおおおおおおおおお
0297デフォルトの名無しさん2014/03/10(月) 22:44:19.87
マッカーシーのLispの頃の理論では構文的な操作で物事を理解するため、
nil はシンボルであって欲しかった。

Schemeの頃の理論になると semantic な概念が導入されたため、
シンボルとオブジェクトは異なる概念であって欲しくなった。
空リストは専用のオブジェクトとなり、シンボルではなくなったため、
専用の表記が導入された。

って理解してる。
なので、Scheme に空リストの表記としての nil は
入れない方がいいんじゃないかと思ってる。
空リストが偽でなくなった理由はわからない。
0298デフォルトの名無しさん2014/03/11(火) 00:04:46.99
R2RSには空リストの表記として#!nullがあった
0299デフォルトの名無しさん2014/03/11(火) 05:14:33.75
>>297
ごせつごもっとも
ま、.空リストが偽でないことでプログラム書きかためんどくなるが、概念としては曖昧なnilよりすっきりしてる

(while lst
(set! rev (cons (car lst) rev))
(set! lst (cdr lst)))

とかできなくなったのがめんどい
0300デフォルトの名無しさん2014/03/12(水) 00:38:10.80ID:PmsDk2kY
pair?てあんま好きじゃないんだが
cons?のがよくね?
0301デフォルトの名無しさん2014/03/12(水) 00:40:00.07ID:PmsDk2kY
もちろんconsがコンストラクタの略だってことは承知でな
pair?だと逆にどこから出てきたんだよこの馬骨はって思うじゃん
だったらconsやめてmake-pairにでもしろや
って思うじゃん
0302デフォルトの名無しさん2014/03/12(水) 00:46:35.05ID:gGAQRqxK
とりあえずコンストラクタと型判定述語の対応

lambda procedure?
cons pair?
list list?
make-vector vector?
make-string string?

なんてこった。
基本的な型なのにこんなに一貫していない命名だとは。
0303デフォルトの名無しさん2014/03/12(水) 01:24:21.96ID:fku1OHk4
vector の作成には vector っていう手続きがあるよ。
srfi-1 には make-list っていう手続きがあるよ。
0304デフォルトの名無しさん2014/03/12(水) 01:31:59.78ID:7rMNEn4b
SCHEMEは何か中途半端だ。いっそ、コンス無くしてリストだけにしてもいいんじゃないか?
0305デフォルトの名無しさん2014/03/12(水) 02:00:01.37ID:PmsDk2kY
procedure?だと値を返さないっぽいから
せめてfunction?にして欲しい
もちろんlambda?がいい
組み込みはinternal?とかで
0306デフォルトの名無しさん2014/03/12(水) 02:06:03.64ID:gGAQRqxK
>>305
> procedure?だと値を返さないっぽいから

実際のところ値を返さないこともある。
0307デフォルトの名無しさん2014/03/12(水) 02:33:14.91ID:/PudMNUJ
> lambda procedure?
> cons pair?

proc proc?
pair pair?
にしよう。
0308デフォルトの名無しさん2014/03/12(水) 04:55:15.12ID:OMPOBOZN
処理系のエラー通知の仕組みが知りたいです。
典型的にはどういった実装がありますか。
エラー型のようなものを作っているのでしょうか
0309デフォルトの名無しさん2014/03/12(水) 08:16:14.60ID:Jb6YhUW8
>>304
consセルという基幹をはなれて
たかだか表現上のことでしかないリストを中心に据えてどうする。
本末転倒。
0310デフォルトの名無しさん2014/03/13(木) 00:50:50.31ID:EB5Xi5Zn
miniKanren
面白いね
Reasoned Schemer読んでる
0311デフォルトの名無しさん2014/03/13(木) 01:04:25.94ID:pSYj+jmU
>>308
エラー通知って fprintf で stderr になんか表示するだけじゃない?

エラー型のようなものに関しては
srfi や R6RS に condition というものがある。
0312デフォルトの名無しさん2014/03/13(木) 21:57:08.82ID:rV9SiEZO
エラー通知だかの継続呼び出すだけだからな
スッタクなんか関係ないし
自由を求めて不自由になったお話を思い出すね
0313デフォルトの名無しさん2014/03/13(木) 22:02:11.96ID:rV9SiEZO
人は、不自由を嫌うが、自由を求めているのではない
0314デフォルトの名無しさん2014/03/14(金) 00:32:29.26ID:myEJmnze
自由すぎると何もかも自分でやるはめになる
だから他人の作ったライブラリという不自由を探してきて楽をするのさ
0315デフォルトの名無しさん2014/03/14(金) 02:26:01.10ID:/iTGJs+2
プログラムとは特殊化
0316デフォルトの名無しさん2014/03/14(金) 09:37:45.73ID:LQScPk2V
哲学的な話になるといっきにドツボ低レベルになるのは日本Lisperの特徴かな
0317デフォルトの名無しさん2014/03/14(金) 09:58:12.75ID:AAxJccE4
哲学的
ドツボ低レベル
日本Lisperの特徴

だってさ
0318デフォルトの名無しさん2014/03/14(金) 10:02:47.72ID:LQScPk2V
>>317
そうだが、それがなんだい?
0319デフォルトの名無しさん2014/03/14(金) 11:20:25.10ID:i2gZM/lI
プログラミングGaucheの前書きにこのスレの名前があるのは何で?
0320デフォルトの名無しさん2014/03/14(金) 11:40:56.77ID:yw1h0rB8
>>319
スレに降臨して査読求めてた。
0321デフォルトの名無しさん2014/03/14(金) 12:42:15.61ID:qyVOGyCK
>>315
良いプログラムは最低限の特殊化が無理なく行われている。
0322デフォルトの名無しさん2014/03/14(金) 13:04:03.34ID:db8QorUz
Gaucheにもquicklispのようなものがあればいいんだがなー
0323はちみつ餃子 ◆8X2XSCHEME 2014/03/14(金) 16:21:34.35ID:rvJhz4Kx
gauche-install に不満が?
ひとつのリポジトリに集約してほしいってことかな?
0324デフォルトの名無しさん2014/03/15(土) 07:48:36.80ID:zceL17jk
quickscheme を作ろう、scheme だって企画がちゃんとあるんだからライブラリを管理するのは簡単だ (棒読み)
0325デフォルトの名無しさん2014/03/15(土) 14:24:11.31ID:n/4F4bsU
>>322-232
というか、フォルダ1個コピーすればOKみたいなポータブルにできないのだろうか
0326デフォルトの名無しさん2014/03/15(土) 18:19:49.92ID:gENJg6MC
えっ
0327デフォルトの名無しさん2014/03/15(土) 19:43:15.11ID:+NCAYm5Y
Schemeだけで書かれているライブラリならほとんどの場合はコピーするだけだよ。
0328デフォルトの名無しさん2014/03/15(土) 20:33:01.85ID:2qKnCe2F
ffi
を統一すれば他も統一できそう
0329デフォルトの名無しさん2014/03/15(土) 22:04:03.03ID:arc9z/ou
>>325
ライブラリ同士の依存性がどうこうとかがあって、
更にマクロがあるので、なかなかそういうわけにはいかない。
r6rs の library があんなんなっちゃった理由のひとつ。
0330デフォルトの名無しさん2014/03/15(土) 23:54:46.32ID:+NCAYm5Y
なるほど。
gauche-install はそういう依存性の解決はしてくれないもんな。
0331デフォルトの名無しさん2014/03/16(日) 06:51:09.77ID:jg6pkE2L
http://www.schemeworkshop.org/
これって名前はworkshopだけど
査読があるから査読付き国際会議って扱いにしていいんだろうか
0332デフォルトの名無しさん2014/03/16(日) 10:40:12.75ID:4HUpx++T
ワークショップ、シンポジューム
http://ja.m.wikipedia.org/wiki/学会_(会議)
査読付き国際会議だとは思うが、主催はユーザーグループなんだね。

clojure/conjと併催してたんだ。

ICFPの併催のworkshopは学会(ACM SIGPLAN)主催になってるから表現しやすいよな。
http://cufp.org/conference
http://www.mlworkshop.org
http://www.haskell.org/haskell-symposium/

ICFPは元々acm lisp カンファレンスだったやつだと思う。
http://www.icfpconference.org

いましらべてたら、ILCもユーザーグループ主催なのか。
http://international-lisp-conference.org/2014/index.html
0333デフォルトの名無しさん2014/03/16(日) 13:31:49.32ID:pjuy1WN3
schemeで2ちゃんに任意の文字列を書き込むスクリプト作りたいんだけどどうすればいいのかな?
0334デフォルトの名無しさん2014/03/16(日) 16:50:49.29ID:FjMvJr7q
>>331-332
大学によって違うかもしれんが、査読付きで、ISBN付きのプロシーディングの出版があれば査読付き著書にカウントしてくれる
シュプリンガーなら文句なしなんだけどね

University of Utah Technical Report の立場が分からんが、not intended to replace conference or journal publication って書いちゃってるので査読付きでカウントするのは難しいかと
0335デフォルトの名無しさん2014/03/17(月) 00:09:56.25ID:3w0r/EDw
lispって何ができんの?
0336デフォルトの名無しさん2014/03/17(月) 01:14:10.25ID:LQCTfrGY
>>335
他の言語、CやJavaやRubyと変わらないよ
0337デフォルトの名無しさん2014/03/17(月) 03:53:42.12ID:NheN3KPC
>>335
Lisp使いになると東大女とやりまくれる
0338デフォルトの名無しさん2014/03/17(月) 09:47:10.40ID:XBjk++yV
その魅力のないデマをしつこく流す目的は?
0339デフォルトの名無しさん2014/03/17(月) 14:43:55.87ID:Tuj3+h2s
マジレスの波動を感じる
0340デフォルトの名無しさん2014/03/17(月) 17:59:04.42ID:WHHErXpn
で結局Lisp族って他のインタプリタより速いの?
0341デフォルトの名無しさん2014/03/17(月) 18:03:23.65ID:xqSk1ndf
最近は古典的なインタプリタは速度競争なんかしてない。
0342デフォルトの名無しさん2014/03/17(月) 18:11:55.96ID:Tuj3+h2s
Lispは手でパーサを書き終えるまでの時間が早い
0343デフォルトの名無しさん2014/03/17(月) 20:32:36.87ID:y+URzG55
インタプリタだと毎回ソースコードを読み込むところからの時間が実行時間に加算されるわけだから最適化にかけられる時間が限られてる。
プログラムの内容がものすごく計算量の多いものなら時間をかけてでもがっつりと最適化した方がいいけど、そこそこのものなら最適化はしない方が全体としては速いかもしれない。
用途によってトレードオフのバランスを決めるしかない部分なのでLISP族とその他という大きな括りでは比較しようがない。
多大なリソースが注ぎ込まれてる本格的な処理系も個人レベルで作ってみただけという原始的なものもあるわけで、そりゃピンキリだよ。
0344デフォルトの名無しさん2014/03/17(月) 21:53:40.64ID:XBjk++yV
Common LispならCノ次ぐらいに早いって。ばっちゃんが言ってた。
0345デフォルトの名無しさん2014/03/17(月) 22:23:27.34ID:y+URzG55
そのためにはチューニングに手間をかける必要があるのと、
手間をかけた結果からは美しさが失なわれて C と同じくらいの見た目になる。

そのかわりざっとしたプロトタイプを書くのは C よりずっと簡単だし、
チューニングする必要があるのがどこか把握するためのプロファイリング機能や逆アセンブラは充実してる。

プログラミングスタイルそのものとセットで考えなければいけないので、
単純には比較できないな。
0346デフォルトの名無しさん2014/03/18(火) 17:45:21.05ID:uwWTDmYY
Common LispでもSchmeでもない新生Lispをつくったとして需要あると思う?
0347デフォルトの名無しさん2014/03/18(火) 17:50:20.61ID:jmzjar2H
>>346
つClojure
0348デフォルトの名無しさん2014/03/18(火) 17:55:33.20ID:Suoz9IBN
仕様を作るのか単なる処理系を作るのかでだいぶ異なる
0349デフォルトの名無しさん2014/03/18(火) 18:06:33.51ID:MOBgar03
売りがあれば需要はかならずあるだろう。
0350はちみつ餃子 ◆8X2XSCHEME 2014/03/18(火) 19:05:40.49ID:y0jvz8+J
需要はあると思う。 規格に合わせようとすることが足枷になるならどんどん新しいものを作ったらいい。
たとえ出来上がったものが未熟であってもアイデアが他に活かせることもあるし、自分の訓練にもなる。

ただ、本気で広く普及するような言語を目指すならそれは結構厳しい道程かもしれない。
既存の言語は現時点で「使い手がいる」「ライブラリがある」「実績がある」というのも大きな利点であって、
(LISP系は他のメジャー言語に比べれば格段に少ないにしても)
新規の言語がいきなりそれを用意できるわけもない。
つまりはそれを上回る魅力を提示する必要がある。
出来なければ元々が方言の多いLISPのことだし、「また俺俺LISPが出たな」くらいのものになる。

ClojureはJavaの資産を利用するという方法でライブラリの部分を埋めたからあれだけの躍進があった。
もちろんJavaの資産をうまく利用できるようにうまい言語設計されてもいるけどね。
言語設計者にとってはすごく屈辱的かもしれないけど、やっぱり物量がある方が有利っていうのはある。

逆に言えばClojure同様に既存の資産にちょっとLISPっぽい外観を与えるだけで有用になるものは他にもあるんじゃないかという希望もある。
0351デフォルトの名無しさん2014/03/18(火) 19:08:15.31ID:x5e1HBxb
Racket最強伝説
0352デフォルトの名無しさん2014/03/18(火) 20:11:41.63ID:amKGTNPu
>>350
Java資産ならArmed Bear Common LispやKawa Schemeが前からあるし、
そっちの方が規格にも準拠してるそうだから、Java資産ってのは理由にならないんでない?
Clojureが騒がれたのは、大方、PythonやRuby、Haskell周りがWebバブルで浮かれていた
シリコン脳のアホ共が便乗した、とても良い時期に誕生したからだと思うわ
0353デフォルトの名無しさん2014/03/18(火) 20:46:38.19ID:AJd0B3pW
>>352
Clojureの躍進の一番大きなものはLeiningenの存在だと思うがなー
Mavenリポジトリ他から必要なライブラリをぽいっと呼び出して依存関係解消してくれるし、面倒なXML書かなくて済むし
0354デフォルトの名無しさん2014/03/18(火) 20:57:21.89ID:jmzjar2H
互換性無くして括弧減らして[]使ってとっつきやすくしたのも
0355はちみつ餃子 ◆8X2XSCHEME 2014/03/18(火) 22:57:53.79ID:y0jvz8+J
>>352
Java 資産を利用できる CL (Scheme) っていうのと Java 資産を使うために設計された Lisp 系言語っていうのは違うと思う。
でも、確かに時期がよかったっていうのは有るかな。
それも狙って個人で作れるものではないし、難しいよなー
0356デフォルトの名無しさん2014/03/18(火) 23:06:48.30ID:UBk2tVSE
Lispって時点で有用性ゼロだろ
0357はちみつ餃子 ◆8X2XSCHEME 2014/03/18(火) 23:37:28.92ID:y0jvz8+J
そうか
0358デフォルトの名無しさん2014/03/19(水) 00:02:08.59ID:Jh1c0+c5
clojureやshenみたいに既存のlispとは違った文法を持ってるlispが増えてくれると楽しくて良い
0359デフォルトの名無しさん2014/03/19(水) 00:41:16.93ID:/As/erWY
XSLTとかどっすか
いちおうSchemeの子孫だし
0360デフォルトの名無しさん2014/03/19(水) 00:43:25.85ID:amnSipvO
静的型付でデフォルトで遅延評価で型推論あってSTMもあってライブラリも充実しててメニーコアに対応した21世紀の lisp 下さい
0361デフォルトの名無しさん2014/03/19(水) 01:12:37.87ID:Nndd1+4W
Clojureはイミュータブル+S式が特徴だけど、Haskell、lispとも違うアプローチしてると思う。
Haskellでもデータ構造は破壊的なもの使ったりするけど、Clojureなら実用的(な速度)でシンプルに使える実装を売りにしてた。
hash array mapped trie (HAMT) とか。

http://www.slideshare.net/adorepump/clojure-an-introduction-for-java-programmers
ただ、javaと混ぜると静的な型チェックする言語ほどは、イミュータブルに出来ない。

発想については、ここら辺にまとまってる。
http://qiita.com/kawasima/items/c695e2f4ee079a6debf5
結局のところClojureは、イミュータブルなphpなんじゃないかと思ってる。
0362デフォルトの名無しさん2014/03/19(水) 01:13:23.54ID:tHHX2/pv
>>360
つ Typed Clojure
0363デフォルトの名無しさん2014/03/19(水) 04:17:46.15ID:g+2MOTll
数式処理ってCommon Lisp(maxima)しか実用的なのはないのでしょうか?
SchemeにはMaximaに相当するのないのですか?
0364デフォルトの名無しさん2014/03/19(水) 07:20:57.80ID:vwDmoCEd
>>363
っMathematica
0365デフォルトの名無しさん2014/03/19(水) 15:27:13.75ID:oXIqqE+e
メニーコア対応の数値計算Schemeとかは需要あるだろうか。
まぁ数値計算屋は保守的だから結局Fortranが使われるわけだがね
(別に保守的なのが悪いとは言わないけど)

CUDAはベースがLLVMになったので、頑張れば
LLVMコードを吐いてNVIDIA GPUで走る処理系はできそうだな
しかしXeonPhiも考えると、結局Fortranに落とすのが一番良いという
結論になってしまうけど

Fortran資産を使えるLisp、というのは
遊びとしては面白そうだ。世界で最も古い2つの言語のハイブリッド処理系や
0366デフォルトの名無しさん2014/03/19(水) 16:15:35.90ID:2boxI8vi
マジで?
0367デフォルトの名無しさん2014/03/19(水) 16:59:48.27ID:b5AWvfgt
最初のLISPはFortranのライブラリが原型って聞いたことあるけど。
0368デフォルトの名無しさん2014/03/19(水) 17:29:00.17ID:jbaTmMPB
原型っていうか、実装にあたってcarとかcdrの中身に、
それ以前に作ったFortran用リスト処理ライブラリを流用した、
ってことだと思う。
0369デフォルトの名無しさん2014/03/20(木) 12:12:37.66ID:8VdroaYO
>>358
shenはQiのportable版だから文法に新味はないが、
portable戦術がSteeleの"LAMBDA: The Ultimate Declarative"を思い起こさせて面白い。
というか欧州だからLisp-1の影響なんだろうか。
0370デフォルトの名無しさん2014/03/20(木) 12:13:50.26ID:UwqMSJy+
>>369
Lisp-1→EuLisp-1
0371デフォルトの名無しさん2014/03/24(月) 01:21:16.09ID:oI1zpBwI
りりかるlispの7話目の練習問題がわからない
(define len (lambda (x) (if (= null? '(x))0 (+ 1 (len (cdr x)))) ))
じゃないのか
0372デフォルトの名無しさん2014/03/24(月) 01:41:47.32ID:YyEIcUk7
マルチ氏ねよ
0373デフォルトの名無しさん2014/03/24(月) 01:42:25.91ID:X3mU/vM5
>>371
問題文おしえて
0374デフォルトの名無しさん2014/03/24(月) 02:07:19.76ID:oI1zpBwI
>>373
アリサ「関数letを引数としてxを受け取ると、xの要素の数を返す関数として定義しなさい。ただし、引数は一つで、リストのみが来ると考えていいわ」
0375デフォルトの名無しさん2014/03/24(月) 02:21:32.70ID:b5p4OWYb
関数 len を、〜だな。

>>371
> (= null? '(x))
→ (null? x)

だろ。何で手続き null? と '(x) を = で結ぼうとか思った。
0376デフォルトの名無しさん2014/03/24(月) 02:28:07.40ID:oI1zpBwI
>>375
ありがとう、なんか勘違いしてたみたい
0377デフォルトの名無しさん2014/03/25(火) 03:22:43.51ID:QhbZVHJp
よくインタプリタ処理系である
型データを「ポインタ側に持たせる実装」ってどういうことですか

http://www.nue.org/nue/tao/bitao/index.html

↑のように実際のセルとLISPオブジェクトポインタ?(そんな単語ある?)
の二段構えってこと?(セルにタグを持たせる実装と比較で)
0378デフォルトの名無しさん2014/03/25(火) 04:08:30.90ID:tfYo+EBB
独自用語についてどんなものかと聞かれてもなんとも
0379デフォルトの名無しさん2014/03/25(火) 04:14:19.75ID:DjVofhuk
ポインタの下何ビットかに、型情報を埋め込むとかじゃね
0380デフォルトの名無しさん2014/03/25(火) 04:21:48.29ID:QhbZVHJp
>>378
ごめん。とにかく「ポインタ側に持たせる」とはどういうことなのか、ということ。
>>379
なるほど。だとするとワード単位でアドレスにアクセスするアーキのCPUだと無理だということ?
いや、てかx86は8毎でなかったでしたっけ。すくなくないですか
0381はちみつ餃子 ◆8X2XSCHEME 2014/03/25(火) 06:52:02.45ID:utJZ75qI
>>380
gauche.h のコメントが参考になる。
https://github.com/shirok/Gauche/blob/master/src/gauche.h#L187
状況によっては 3 ビット以上をタグに取れるよ。
0382デフォルトの名無しさん2014/03/25(火) 10:10:17.20ID:zYkHG6WI
>>380
>なるほど。だとするとワード単位でアドレスにアクセスするアーキのCPUだと無理だということ?

どうして?
むしろ全空間を使いやすい。
オブジェクト配置でどうせアラインしないといけないのだから。

>いや、てかx86は8毎でなかったでしたっけ。すくなくないですか

ポインタ側に持つ即値の型情報だけ必要。
fixed tag
short character
bitmask
など。"その他"はobject側を見る。
0383デフォルトの名無しさん2014/03/25(火) 10:38:52.53ID:QImWjIyD
>>377
この論文の→ ttp://ci.nii.ac.jp/naid/110002723809
("CiNii 論文PDF - オープンアクセス"って所をクリックすれば、自由にPDFが見られる)
図4、図5のあたりを見るといい。
0384デフォルトの名無しさん2014/03/25(火) 13:50:05.10ID:QhbZVHJp
>>377 >>380ですです

たくさんの情報あざーす!

どうやら 勘違い していたようです。
だけど謎が解けてすっきりです!

一歩前進できた模様
0385デフォルトの名無しさん2014/03/25(火) 14:03:19.49ID:tE9oMSd+
ワードマシンではアドレスが奇数のこともあるのでは
0386はちみつ餃子 ◆8X2XSCHEME 2014/03/25(火) 14:19:44.67ID:utJZ75qI
無駄が有っても常に4バイトなり8バイトなりの境界に配置するしかしゃーない。
でもどうせ IA32 用 C 処理系の malloc はだいたい 8 バイト境界のアドレス返すよ。
半端なアドレスでもアクセス出来るけど速度的なペナルティがちょっと有るし、
SSE が特定のアラインを要求したりする場合も有るからな。
0387デフォルトの名無しさん2014/03/25(火) 15:37:57.91ID:/6gLpgWk
ワードマシンと言っても、最近のはアドレスはバイト単位で割り振られてるのばかりでしょ?
アクセスするのにペナルティがあったり、複数命令必要ってだけで。
昔の大型みたいにアドレッシングがワードのみのなんてあるの?
0388デフォルトの名無しさん2014/03/25(火) 15:43:38.45ID:/6gLpgWk
あ、GPUにあるか。
0389デフォルトの名無しさん2014/03/25(火) 17:02:46.07ID:AvCKhDY2
>>387
ワードの読み込みを奇数バイト境界でアクセスできるCPUの方が珍しくない?(シェアベースだとx86でもうまんたいかもしらんけど)
0390デフォルトの名無しさん2014/03/25(火) 18:40:15.47ID:/6gLpgWk
>>389
それは複数命令必要ってことでしょ。それがないとは思ってない。

基本的にLisp実装には殆ど関係のない話だし。
そんなObject配置はしないので。
0391デフォルトの名無しさん2014/03/25(火) 18:45:14.00ID:xdEsusSJ
ワードマシンってバイト単位のアドレッシングじゃないCPU機のことだよ?
ペナルティあったり、複数命令でアッセンブルする必要があろうが、
アドレスがバイト単位で割り振られていればバイトマシン。
たとえば初期のRISC、MIPSとか、もバイトマシン。
0392デフォルトの名無しさん2014/03/25(火) 19:18:44.82ID:QImWjIyD
ワードアドレッシングね。System/360より前は普通だったから、半世紀以上前か。
最近でもDSPとかには普通にあるけど。

確かにアドレス付けがバイトアドレッシングで、ワードを指す場合はアラインメントが
強制されるアーキテクチャの場合(あるいは意図的にアラインさせて)、ポインタの
下位1ビット〜3ビットをタグに使うというテクもあるけど(CRubyのFixnumとそれ以外とか)、
Lisp実装系のタグとしては、アドレス空間が24ビットなのでアドレッシングの上位1バイトが
無視される、というような場合にその上位1バイトをタグに使う、という奴が多い。

32ビットアーキテクチャの初期にはアドレス空間が24ビットというマシンが結構あったので
そういったテクも使われたりしたけど、アドレス空間が広くなると同時に消えていった。
64ビット化でまた同じようなことが起きるかどうかは興味深いところ。
0393デフォルトの名無しさん2014/03/26(水) 00:56:49.13ID:U1TUL83R
>>392
AArch64は上位8bitをタグにできるね。
0394デフォルトの名無しさん2014/03/26(水) 17:29:07.50ID:rDn7FARN
勉強になりますなぁ
0395デフォルトの名無しさん2014/03/26(水) 17:33:34.49ID:WRQ9gvUM
じゃ、勉強にならないことをおれが書き込む。
生まれてはじめて英語の原著でLispの勉強始めた。正確に言うとSchemeになるけど。The little Schemerだから。
ネットにpdfあったから無料。
0396デフォルトの名無しさん2014/03/26(水) 17:40:18.04ID:rDn7FARN
>>395
勉強になりました、、
、、、てかもうすこしはやく知りたかった

なぜなら 先 週 買 っ た か ら で す
0397デフォルトの名無しさん2014/03/26(水) 17:47:39.26ID:qc7W1WNa
でも紙のほうが頭に入りやすい気がする
0398デフォルトの名無しさん2014/03/26(水) 18:02:01.95ID:qHAM3H0L
PDF あるにはあるけど違法ではないかと
0399デフォルトの名無しさん2014/03/26(水) 19:26:25.73ID:mQCSkEUS
公式ページにサンプルしか置いてない以上、全文が上がってるんだとしたらたぶん不法に流通してるものだな。
http://www.ccs.neu.edu/home/matthias/BTLS/
0400デフォルトの名無しさん2014/03/26(水) 19:52:21.21ID:6UDaHe6u
続編のThe seasoned schemer
もpdfあった。
0401デフォルトの名無しさん2014/03/26(水) 21:39:03.67ID:jz/5iWBa
だから違法アップロードものでしょ。
日本人ならちゃんと買って読めよ。支那チョンなら好きにしろ。
0402デフォルトの名無しさん2014/03/26(水) 21:42:08.64ID:FbuvqMDP
てめぇはν速に帰れウヨ
0403デフォルトの名無しさん2014/03/26(水) 21:47:18.84ID:rDn7FARN
旧速が常勝軍と言われたのは今は昔の話
0404デフォルトの名無しさん2014/03/26(水) 23:06:05.95ID:6UDaHe6u
>>401
ばかか?
0405デフォルトの名無しさん2014/03/28(金) 00:56:39.37ID:xjbmATUr
>>401
というか、なんか、オンラインのバージョン管理システムで原稿管理してるっぽい
0406デフォルトの名無しさん2014/03/28(金) 15:34:37.22ID:H/L8+fyB
The Little Schemer 楽しいから終えたら
続編やろっと
pdfで!
0407デフォルトの名無しさん2014/03/28(金) 17:29:44.00ID:uw+zS2xj
Functional programming - Bodil Stokke
https://www.youtube.com/watch?v=DHubfS8E--o

( ゚∀゚)o彡°
0408デフォルトの名無しさん2014/03/28(金) 21:47:52.46ID:xjbmATUr
    /    ||    :ヽ
   ┌|(⌒ヽ :|| ..:⌒: |┐  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
   |::|::ヽ.__:):||(___ノ ::|::|  │ 
    |:|: ..   :||    .. |:|  │ 
    :|: ..   ||    ..|| < 日本語でおk 
     :\ [_ ̄] /::|    │ 
::     |\|_|_|_|_/:::|     \_______
0409デフォルトの名無しさん2014/03/28(金) 23:46:55.98ID:b6Yp0O/0
all your base はある意味日本語
0410デフォルトの名無しさん2014/03/28(金) 23:51:57.23ID:+JurWiOK
弱点を無くす、とか言いながら
他の言語によくある、「無」 (つまり nil) が無いのは何故?
0411デフォルトの名無しさん2014/03/28(金) 23:54:28.31ID:beMC8OFd
Scheme の話?
#f と空リストがあればいらなくね?
0412デフォルトの名無しさん2014/03/29(土) 01:09:24.04ID:fba0LB8w
空リストは実質的に nil だろ。
(ブール値としての) 偽値とリスト終端を兼任させるのは逆に「区別できない」という弱点になりうるので、
そりゃどっちもどっちな話だ
0413デフォルトの名無しさん2014/03/29(土) 03:00:11.41ID:uWZyJxpN
https://twitter.com/anti_reptilian/status/449602020740042752
ネトウヨってこういう人が連投してるだけでしょ
0414デフォルトの名無しさん2014/03/29(土) 06:29:15.26ID:MK8gph4C
>>412
In Common Lisp

(set 'a '(hello))
(set 'b 'hello)

(cdr a) → nil
This nil is just the termination for the Cell,
also the empty list as the S-expression

(cdr b) → nil
This nil is neither the teirmination
nor the empty list.
It means No Answer,just "null"
0415デフォルトの名無しさん2014/03/29(土) 07:03:45.87ID:0d+qMQSz
誰かなんでcdrのエラー値がリストとして正当なnilなのかという疑問を晴らしてください
0416デフォルトの名無しさん2014/03/29(土) 07:12:06.65ID:vwiiB6uc
CL は実用的な言語だから仕方ない
0417デフォルトの名無しさん2014/03/29(土) 10:29:40.20ID:inM1A1mw
>>415
互換性。
初期のLispは未定義値も例外もないからnil返すのが妥当だった。
0418デフォルトの名無しさん2014/03/29(土) 10:51:41.38ID:46qVoWdl
>>415
(setq a 123)
(cdr a) → nil
のことを言っているなら、そもそも
「リストとして正当なnil」
というところで既に誤解している

そもそも関数cdrが返す値は、あくまでCell(コンスセル)のcdr部であって、
上の例では
「そもそもaはatomでセルじゃないから、そのcdr部が�|イントするものはなーに?って聞かれてもatomにはcdr部なんてないから答えようがない。
あえていば、ナッシング、無。あえていえばnilやな」
となる。
セルを隠蔽して、あくまでatomとリストの世界でモノを考え、「関数cdrは空でないリストの最初のエレメントを除いだリスト」
とだけ考えると、貴方の疑問が可能となる。
0419デフォルトの名無しさん2014/04/08(火) 02:46:09.00ID:1cdjmKJQ
maximaをSchemeで書き直して
scmxlateで変換すれば
Common LispでもSchemeでも動く様になってくれると
最高なんだけどなあ
0420デフォルトの名無しさん2014/04/09(水) 14:19:02.78ID:Ih8FRvRW
はあ?
0421デフォルトの名無しさん2014/04/09(水) 15:49:58.58ID:8Qwhleoh
そうか。
0422デフォルトの名無しさん2014/04/14(月) 13:15:10.65ID:qFq6vkYD
The Little Schemerの
8. Lambda the Ultimateではじめて唸った

(lambda (a)
(lambda (x)
(eq? x a)))

勉強中
0423デフォルトの名無しさん2014/04/15(火) 00:58:57.97ID:IvMsNS0c
そっかー
0424デフォルトの名無しさん2014/04/17(木) 08:40:22.37ID:cixn2QI+
LISP最強と言うけれども量子コンピュータができても生き残れるのか
0425デフォルトの名無しさん2014/04/17(木) 08:43:24.36ID:8uAQ9CHy
そういうことは出来てから言えよ
0426デフォルトの名無しさん2014/04/17(木) 15:51:45.01ID:1P5IhohW
むしろ生き残れない理由が知りたい
0427デフォルトの名無しさん2014/04/17(木) 17:28:03.75ID:cixn2QI+
理由がわからんからきいてる
怖くないか最強無敵のLISPが未知の概念に対応できるかどうか
0428デフォルトの名無しさん2014/04/17(木) 17:33:28.05ID:xMLxyHMV
Made with secret alien technologyだし大丈夫じゃね?
0429デフォルトの名無しさん2014/04/17(木) 20:19:40.16ID:+OQSf6mC
なんでLispが最強なのか、まだサッパリわからない。
来年には、どういう意味合いでなのか、薄っすらとでもわかるようになるかな。
ただいまLisp勉強はじめて三ヶ月
0430デフォルトの名無しさん2014/04/17(木) 20:27:13.11ID:1P5IhohW
Lispは最強だが
Lispを扱う人間が最強かどうかは定かでない
0431デフォルトの名無しさん2014/04/17(木) 22:03:21.80ID:TxAQxinM
量子コンピュータのプログラミングなんて何も特別な事はないんだが
0432デフォルトの名無しさん2014/04/17(木) 22:05:50.49ID:HKdaCoDt
>>431
そうなのか
全くの無知やからワクワクと不安でいっぱいぜよ
0433デフォルトの名無しさん2014/04/17(木) 22:28:15.12ID:5Km4hEuY
>>431
回路レベルでは違うけどプログラムレベルのレイヤーだと大して変わらないってこと?
0434デフォルトの名無しさん2014/04/17(木) 23:17:27.20ID:e08dT8mN
そう。
0435デフォルトの名無しさん2014/04/18(金) 00:50:00.23ID:A05FtQ62
>>429
文法が簡単。古典AIの資料が腐るほどある。
0436デフォルトの名無しさん2014/04/18(金) 01:20:06.05ID:PJ4Eb5kS
と言うより全ての言語の機能をlisp自身で付けられるからだと思う
0437デフォルトの名無しさん2014/04/18(金) 01:53:21.63ID:iH+c/XUg
そっかー
0438デフォルトの名無しさん2014/04/18(金) 09:29:23.24ID:iH+c/XUg
今でこそ Lisp といえば Common Lisp か Scheme ってのが大多数を締めてるけど、
古典 AI がどうのとか言ってる時代はバリエーション多くないか。
LISP って名前が付いててもぜんぜん違うものだぞ。
0439デフォルトの名無しさん2014/04/18(金) 11:44:56.62ID:jy9eGr35
いかにLispについての認識が浅かったをジワジワ感じられる地点に来つつある。
さてと勉強しよ
0440デフォルトの名無しさん2014/04/18(金) 14:23:59.13ID:CQ8lxphP
on lispとsicp読んでみたら両方共翻訳が公開されてるよ
0441デフォルトの名無しさん2014/04/18(金) 14:58:08.76ID:jy9eGr35
Kindleで正規に読めるLand of Lispから読むことにした。単語帳に自動的に引用元の文が例文として登録されるのがなにげに便利だから。
Lisp本としての本質にまるで関係ない点から選んだ
On Lispはその次に読む予定
0442デフォルトの名無しさん2014/04/18(金) 16:09:37.74ID:pUaDb9PY
LOL買ってみたけど、SchemerでCLを全然知らん俺にはあまり参考にならなかった
0443デフォルトの名無しさん2014/04/18(金) 17:21:29.29ID:6FER7CaJ
LO?(老眼)
0444デフォルトの名無しさん2014/04/18(金) 22:06:11.91ID:8ujbeqxW
Let Over Lambda?
0445デフォルトの名無しさん2014/04/18(金) 22:46:40.29ID:dS+HYR5/
てs
0446デフォルトの名無しさん2014/04/19(土) 06:16:55.47ID:wA6wuBBt
くじらっくすLisp
0447デフォルトの名無しさん2014/04/19(土) 15:13:08.18ID:76jJl3rx
Common Lisp のパッケージの概念の起源がいつごろかわかる人いる?

「の」が多くてごめん
0448デフォルトの名無しさん2014/04/19(土) 16:58:13.94ID:2RFrAk6Q
>>447
interlispじゃねぇの?
0449デフォルトの名無しさん2014/04/19(土) 18:56:02.29ID:2TBNSLSb
CLtLにLisp Machine Lispの初期のパッケージシステム由来と書いてあるよー。
http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node111.html
Symbolicsとかに分家する前のやつなんじゃないのかねえ。
0450デフォルトの名無しさん2014/04/19(土) 19:43:32.23ID:76jJl3rx
>>449
さんくす 今半分読んだ
0451デフォルトの名無しさん2014/04/20(日) 00:29:50.81ID:u8Pdqoqb
竹内さんの初めての人のためのLISPよんでるけど、
cellってcar cdr全体のこと言うんだね
schemeでいうpair = cellってとこか
でもggるとcons cellsとでるんだけど
0452デフォルトの名無しさん2014/04/20(日) 00:33:31.85ID:aSdpQmIh
>>451
それはペア (cell) がいくつもある文脈でそういってるだけじゃないのか
0453デフォルトの名無しさん2014/04/20(日) 00:40:39.45ID:u8Pdqoqb
>>452
そもそもどうなんだ
consってconstructのことだよね
construct cellsだとするとsついたほうがいいような


、、、んーわからん
0454デフォルトの名無しさん2014/04/20(日) 03:33:18.03ID:zNVx4BWX
そういう枝葉末節に引っかかる奴は
プログラミングに向かない
0455デフォルトの名無しさん2014/04/20(日) 03:47:19.02ID:UOm05Xhh
ここに
(1 . 2)で表現されるセルがある時、それは a cell であってcons cellsであるわけ無い。
セルの意味は
car and cdr are cells
ではなく
a cell consists of two parts;first one is the car,second one is the cdr.

セルとは、セルは、などと言いたいとき、英語では
Cons cells are ....So they are...
と表現する場合とか

複数のアトムからなるリストを実体から見るとき、それはconsによって生成された(される)複数のセルのリンクなわけだから、それをcons cellsと表現するとか

ま、複数のセル、セル一般的について述べるときcons cellsといってるだけどろ。

セルとリストの関係をよく考えてないとな
リストからセルを考えるのは本末転倒。セルからみれば
リストなんて、セルのつながりのたかだかひつとつのrepresentationに過ぎない。
セルのつながり、もろにcons cellsは
リスト表現以外にもドット対表現でも可能なわけだ
0456デフォルトの名無しさん2014/04/20(日) 11:27:53.52ID:ikGZm3gS
単なる英語力の問題。lisp理解関係ない。
0457デフォルトの名無しさん2014/04/20(日) 11:48:17.35ID:28NNVwXQ
甘い認識乙
0458デフォルトの名無しさん2014/04/20(日) 11:53:18.33ID:ikGZm3gS
馬鹿な認識乙
0459デフォルトの名無しさん2014/04/20(日) 11:54:48.12ID:28NNVwXQ
>>458
わはは
読解力の無さを露呈しているな
0460デフォルトの名無しさん2014/04/20(日) 13:00:57.53ID:7dKQJ8NV
clispのfunction-lambda-expression
と同じ事をschemeでやりたいのですが
srfiあたりに似た事できるのが既にあったりしないのでしょうか
defineをマクロで再定義すればいけるだろうとは思うのですが
0461デフォルトの名無しさん2014/04/20(日) 14:11:23.06ID:guzw5huQ
defineを定義しなおせば3つめの返値はなんとかなるだろうけど、
2つめが厳しいな。
0462デフォルトの名無しさん2014/04/23(水) 16:06:40.59ID:PddiTBOJ
今日は体力切れた
勉強はお休み
0463デフォルトの名無しさん2014/04/23(水) 20:36:18.69ID:yzmxmTm6
勉強報告スレ
0464デフォルトの名無しさん2014/04/24(木) 11:40:16.99ID:V7HoJaA9
関数を返す関数の意味がわかってきた
0465デフォルトの名無しさん2014/04/24(木) 12:40:42.70ID:xanOnoSn
そうか。
0466デフォルトの名無しさん2014/04/24(木) 17:31:00.84ID:YIGqqLyp
女はいないけど俺にはLispがある
どや!
どやどや!
0467デフォルトの名無しさん2014/04/24(木) 17:57:01.46ID:tfK4iZJQ
バブルの時代で女に持ってた幻想がソゲブである

抱くのは好きでも一緒にいたくねぇ
0468デフォルトの名無しさん2014/04/25(金) 08:48:36.06ID:xiFjVo8G
JITコンパイラが何でCより高速になる場合があるのかわかったけど
コンパイル時にテスト実行を追加したら同じなんじゃないの?
0469デフォルトの名無しさん2014/04/25(金) 09:47:11.21ID:xiFjVo8G
コンパイラ最適化の論文読んでるのですが
domain theory
について手っ取り早く理解できる出来れば日本語の教科書ってないものなのでしょうか
0470デフォルトの名無しさん2014/04/25(金) 17:43:39.16ID:991UJ/F9
>>468
本番よりいいテストなんてない。
コンパイル時はVLIW向けコンパイラがさんざん試した。
>>469
プログラム意味論 (情報数学講座)
横内 寛文
www.amazon.co.jp/dp/4320026578
0471デフォルトの名無しさん2014/04/25(金) 17:47:38.33ID:HBYRTU1F
横だけどその本て圏論の理解に役立つ?
0472デフォルトの名無しさん2014/04/25(金) 18:00:39.78ID:4fGC8eBc
そりゃ結構長い章が圏論の基礎に割り当てられてるから。
ただこの手の本は腰を落ち着けてちゃんと取り組まないと意味ない。
0473デフォルトの名無しさん2014/04/25(金) 19:34:18.41ID:HBYRTU1F
トンクス
カルテシアン閉カテゴリってのが圏なのかな。
ちらっと眺めたけどほとんど数学書ですよね。
0474デフォルトの名無しさん2014/04/25(金) 20:12:25.64ID:+TF8D1gC
CCCは圏(カテゴリ)の一種です。
代数の教養がないと読みきるのは難しいと思います。

カテゴリー理論とプログラミング : カルテシアン閉カテゴリー (<特集>関数型プログラミングと計算の基礎)
http://ci.nii.ac.jp/naid/110003743607
0475デフォルトの名無しさん2014/04/26(土) 00:07:12.99ID:K0Skm6fw
代数って線形代数ならチョロっと習ったくらいなので自信無いな。
具体的にどんな分野を基礎としているのですか?
0476デフォルトの名無しさん2014/04/26(土) 00:23:08.27ID:4Xi6PaOs
>>474のPDF読んでみて。
カテゴリの例が載ってるから。
0477デフォルトの名無しさん2014/04/26(土) 00:43:02.88ID:dHCQW8E5
>>468
AOTでも実行時のプロファイルを元に最適化はできるけど、JITだと最適化に使える情報が多いとかあったはず。
http://www.slideshare.net/nothingcosmos/x86opti01-nothingcosmos-8784128
0478デフォルトの名無しさん2014/04/26(土) 00:48:27.17ID:hzi1Thvz
>>477
JITは実行時情報が豊富なんだけど実際作ると感じるのはやり過ぎると短い寿命のコードの実行速度が遅くなっちゃうんだよね(R3000系のCPUでしかやってないけど)
serverみたいなずっと生きてるコードには凄くよいけど、それでも起動からしばらくは重かったりする。
0479デフォルトの名無しさん2014/04/26(土) 16:52:41.74ID:dP8sDYOv
クロージャー勉強してるんだけど

http://www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp11.html
の
クロージャー
 クロージャーを変数に代入する
のとこで

(defun foo (x) #'(lambda (y) (* x y)))
を定義して
(setq t2 (foo 2))
やると
#<lexical-closure: (lambda (y) (* x y))>
に評価せれることになるらしいけど
自分のCLISPでやると
#<FUNCTION :LAMBDA (Y)  (* X Y)>
になってるんだけどなぜ?
これは同義と捉えていいの?
0480デフォルトの名無しさん2014/04/26(土) 17:15:15.03ID:jZcKCXUi
>>476
ありがとうございます。読んでみます。
0481デフォルトの名無しさん2014/04/27(日) 05:09:27.05ID:q6Uao33G
>>479
気にしなくていいよ。処理系に依存した表示になっているだけ。
0482デフォルトの名無しさん2014/04/27(日) 05:12:40.19ID:DNn8Q/L1
>>479
俺と殆ど同じ勉強の最中だな
俺はThe Little Schenerの
8. Lambda the Ultimate
でやってるが
0483デフォルトの名無しさん2014/04/27(日) 18:08:32.31ID:dkXr/W0v
readしても同じオブジェクトにはならないから、
規格で定義してなくて処理系依存。
0484デフォルトの名無しさん2014/04/27(日) 21:58:20.13ID:eoTYk+57
>>479 です
らじゃです ありがとうございます
0485デフォルトの名無しさん2014/04/27(日) 22:13:35.79ID:hRm/4Rx6
普段はRacket使ってるんだけど
emacs lisp
でちょっと手の込んだプログラム作ったら
謎な挙動多すぎて
うんざり
Racketの素晴らしさを再認識した
0486デフォルトの名無しさん2014/04/27(日) 22:14:45.90ID:dkXr/W0v
自分の未熟さを棚に上げるお前にうんざり。
0487デフォルトの名無しさん2014/04/27(日) 22:15:58.15ID:Tn6VwyBz
lisp-1とlisp-2の違いで引っかかったんだろ
0488デフォルトの名無しさん2014/04/27(日) 22:25:31.71ID:r8KdhOJG
スコープの違いじゃね
0489デフォルトの名無しさん2014/04/27(日) 22:41:52.46ID:q6Uao33G
Typed Racket どうなん?実用的?それともまだおもちゃ?
0490デフォルトの名無しさん2014/04/27(日) 23:01:05.08ID:xdZ6Vmhj
現時点では最適化に生かされるわけでもなく、
assert 入れるかわりくらいのシロモノ
0491デフォルトの名無しさん2014/04/27(日) 23:09:55.79ID:UfbRwhMl
RMSはCLでemacs組み直せよ。
0492デフォルトの名無しさん2014/04/27(日) 23:11:35.56ID:dRMpu4rZ
>>491
つxyzzy
0493デフォルトの名無しさん2014/04/27(日) 23:19:35.81ID:J+hFW2BD
Emacs Lisp も、こないだ静的スコープになったとかいう話が無かったっけ?
0494デフォルトの名無しさん2014/04/27(日) 23:22:12.82ID:xdZ6Vmhj
静的スコープの機能が導入されたってだけで、全てが置換えられたというわけではない。
0495デフォルトの名無しさん2014/04/27(日) 23:30:00.86ID:dkXr/W0v
キーボd-対話で大域脱出が多発するelispでは動的スコープがないと不便。
ローカル変数で*variable-name*を上書きして動作変えたり。
いちいちuwinde-protectで後始末するとか面倒すぎる。
0496デフォルトの名無しさん2014/04/28(月) 00:03:53.12ID:/t06Ophp
>>495の言ってる事がわけわからないんだけど
デフォルトがレキシカルスコープだと本当にこまるのか?
0497デフォルトの名無しさん2014/04/28(月) 00:18:15.90ID:ya4xYLdw
つ ないと不便
0498デフォルトの名無しさん2014/04/28(月) 00:25:19.52ID:XZDH340r
まぁ膨大な量に既存のコードをいきなり変えるわけにもいかんからな。
0499デフォルトの名無しさん2014/04/28(月) 09:19:56.82ID:8S7K1sXu
動的スコープでないと不便ってそれこそ未熟
とまでは言わんが反射的に噛み付くのは犬だな
0500デフォルトの名無しさん2014/04/28(月) 09:35:35.59ID:CuLw9jaa
>>489
普通の Racket よりコンパイル時間がかなり延びて不便
0501デフォルトの名無しさん2014/04/28(月) 10:06:48.35ID:mheEU0a2
関数を渡す関数の勉強が終わったら、今度は継続だ。
まいっチング
ふぅー、頑張るしかない
0502デフォルトの名無しさん2014/04/28(月) 11:04:59.49ID:XZDH340r
頑張るんじゃなくて楽しめ。
0503デフォルトの名無しさん2014/04/28(月) 11:23:15.86ID:k+aW12Iq
今日はレスが多いですね
0504デフォルトの名無しさん2014/04/28(月) 17:20:21.15ID:mheEU0a2
>>502
なんか楽しめそうな教材、ねっとでみつけたわ
0505デフォルトの名無しさん2014/04/28(月) 18:10:13.40ID:k+aW12Iq
>>504
kwsk
0506デフォルトの名無しさん2014/04/29(火) 10:19:06.23ID:TDR4lejK
>>505

On Lisp
http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html

WIKIBOOKS Scheme/継続
http://ja.wikibooks.org/wiki/Scheme/%E7%B6%99%E7%B6%9A
0507デフォルトの名無しさん2014/04/29(火) 10:24:50.85ID:TDR4lejK
>>506
on lisp url間違えた
0508はちみつ餃子 ◆8X2XSCHEME 2014/04/29(火) 11:35:41.31ID:jwcfIzOB
SICPが復刊らしいよ。
http://books.shoeisha.co.jp/book/b177731.html
0509デフォルトの名無しさん2014/04/29(火) 12:00:24.86ID:2ahvypeX
>>508
いや復刊より訳をなんとかしてほしい
0510デフォルトの名無しさん2014/04/29(火) 14:14:09.66ID:fqLJb+0P
別のpdf版からの翻訳があるみたい
https://github.com/sarabander/sicp-pdf
http://d.hatena.ne.jp/minghai/touch/20140402/p1
0511はちみつ餃子 ◆8X2XSCHEME 2014/04/29(火) 16:26:14.92ID:jwcfIzOB
>>510
それは現時点では和田訳より悪いという意見もあるけど、
長い文を分割するとかして意訳寄りになってるので、
これから地道に改善すれば日本語としては和田訳より自然になるかもしれない。

和田氏の訳は変に翻訳調の言い回しがあったりすることに違和感を感じてる人が多いみたいだけど、
ちょっと古い専門書を読むと割とこんな感じなので昔のノリで訳しただけなんじゃないのか。
和田氏は確かな業績と能力のある人ではあるんだろうけど、
俺らとは世代がだいぶん違うのは如何ともしがたい。
0512デフォルトの名無しさん2014/04/29(火) 16:49:40.43ID:fqLJb+0P
そっちは、気になるところあったらまとめて、pullリクだして、直したらいいかもしれない。
0513デフォルトの名無しさん2014/04/29(火) 17:34:42.54ID:gtL4c7jL
自分で処理系作ってみたいんだけど参考になるCの実装ない?
規模が小さいくてできればCommon Lisp系統のもので
0514 ◆QZaw55cn4c 2014/04/29(火) 18:34:35.13ID:YSaKMYqx
>>513
古いものなら http://www.amazon.co.jp/dp/4871482006/
0515デフォルトの名無しさん2014/04/29(火) 18:45:12.73ID:gtL4c7jL
>>514
高けぇえええええええええええええええ

ありがたいけど 高杉っす
0516デフォルトの名無しさん2014/04/29(火) 18:48:19.27ID:rYkmdeg9
>>514
折れも買おうかなぁー
と思ったが高杉晋作やぁ
アスキー出版で一万かい!
0517はちみつ餃子 ◆8X2XSCHEME 2014/04/29(火) 22:41:24.48ID:jwcfIzOB
>>513
github で検索すればどうか
0518デフォルトの名無しさん2014/04/29(火) 22:57:55.92ID:fqLJb+0P
tiny lispなりで検索すればいいと思う
http://en.wikipedia.org/wiki/Common_Lisp
メジャー実装のところだとECLがコンパクト?
0519デフォルトの名無しさん2014/04/30(水) 01:19:19.55ID:AJjFNnEv
和田訳は翻訳調で読みずらいだけでなく
訳自体が間違っているから
>>511
みたく読み手のせいにする擁護が多いけど
0520デフォルトの名無しさん2014/04/30(水) 01:37:57.04ID:siFhOvJB
>>519
>訳自体が間違っているから

具体的にはどの箇所よ?
0521デフォルトの名無しさん2014/04/30(水) 01:44:09.50ID:UV9ek+Es
ググれよ
多すぎていちいち指摘できんだろ
0522デフォルトの名無しさん2014/04/30(水) 02:14:41.14ID:siFhOvJB
具体的なソースは示せないってことね
URLを1つ書くだけのことなのに
0523デフォルトの名無しさん2014/04/30(水) 02:17:31.89ID:lrSzZ8qN
そもそも日本語が意味不明すぎて
正しいのか間違っているのか判別できない
0524デフォルトの名無しさん2014/04/30(水) 02:25:07.80ID:9dpec+mq
>>523
これ書かれる度に思うのだが、日本語読解力が足りなくて補完できていない分はどれほどあるんだろうか?
0525デフォルトの名無しさん2014/04/30(水) 02:36:47.10ID:lrSzZ8qN
日本語能力が足りないのは訳した人間だろ
読み手のせいにするな
0526デフォルトの名無しさん2014/04/30(水) 02:46:59.64ID:Uuvf5zxf
根本的にSICPは簡潔に書かれているのであって平易に書かれているわけじゃない。
日本語訳の文章が意味不明だと思う奴は結局のところSICPの解説書を欲しているのであって
SICPそのものの自力読破はできない手合いだろうよ。
誤訳は実際あるにせよ、それが問題になるほど本当にお前は本分を読んでいるのか?
0527デフォルトの名無しさん2014/04/30(水) 02:53:28.76ID:e2ylKwN0
SICP日本語版が読めるっていう人は
意味不明な文章を既存の知識で補って読んでいるんだろうな
そういう知識のない人には読むのは無理な本
0528デフォルトの名無しさん2014/04/30(水) 03:04:22.36ID:9dpec+mq
>>527
そんな言い方したら学術書読みたいパンピー全滅じゃないですか〜
0529デフォルトの名無しさん2014/04/30(水) 03:04:34.77ID:Uuvf5zxf
翻訳ってのは、原著に書かれていないことまで(訳注を超えて)勝手に割り増しすることじゃないからな。

SICPの最初の一文を和田訳と原著で見比べて、ついでにそこを自分なりに和訳を試みてみるがいいさ。
プログラムというたった一単語の奥深さを、"program"という一単語の意味を正確に理解しているわけではない
日本人相手にどうやって伝えれば良いのか身悶えるがいい
0530デフォルトの名無しさん2014/04/30(水) 03:05:05.60ID:siFhOvJB
SICP日本語版を批判しているのは、プライドが高くて
理解できない理由が己の技量不足とは認めたくないから、
それを翻訳のせいにしているだけ


で、しばらく待ってみたけど、結局のところ
>>519,521はソース無しに批判してただけなのね
0531デフォルトの名無しさん2014/04/30(水) 03:15:55.45ID:e2ylKwN0
>>530
もう3時だぞ
はやく寝ろよ
0532デフォルトの名無しさん2014/04/30(水) 03:18:30.42ID:e2ylKwN0
>>529
空想がすぎて割り増しとか書いちゃってるよ
単純に和田の英語力が低いだけだろ
0533デフォルトの名無しさん2014/04/30(水) 03:19:03.48ID:e2ylKwN0
身悶えるがいいwww
0534デフォルトの名無しさん2014/04/30(水) 03:26:35.58ID:Uuvf5zxf
で、>>532にあの一文を翻訳できるのか?
ここで和田訳の日本語を批判してる面子の批評に耐えられるレベルの品質で
0535デフォルトの名無しさん2014/04/30(水) 03:31:11.18ID:e2ylKwN0
和田訳は一文だけじゃなくて
全般的におかしいだろ
0536デフォルトの名無しさん2014/04/30(水) 06:30:51.85ID:r69v9/KD
とごでも、いいから典型的なヶ所出し欲しいな
「ここ、、変でしょ?和田さん!」
の部分
事例ゼロで話が進むんじゃ
馬鹿だけど頭良さげに振る舞うドアホみたいだし
0537デフォルトの名無しさん2014/04/30(水) 06:31:41.21ID:r69v9/KD
× とごでも
○ どこでも
0538デフォルトの名無しさん2014/04/30(水) 10:36:08.25ID:M/3n2T6Z
教本なんだから要は同じ内容を同じように理解できるかが主目的
訳の正確さは文学でやって、どうぞ
0539デフォルトの名無しさん2014/04/30(水) 10:47:43.02ID:5Jam0SwU
むしろ文学でこそ意訳は許されるが、技術書では可能な限り「そのままの」訳が求められるだろ
0540デフォルトの名無しさん2014/04/30(水) 10:59:08.96ID:ZnZNlRvV
さっさと原書読めば良いのに
0541デフォルトの名無しさん2014/04/30(水) 11:04:25.71ID:9dpec+mq
>>540
俺もそう思う、訳が駄目とか言える位英文読解力あるんだから素直に原文読んで学習すればいいのにって。
0542デフォルトの名無しさん2014/04/30(水) 11:06:04.00ID:9dpec+mq
専門すれ有るのでそっちでやるのが良いと今頃思った、ごめん
【SICP】計算機プログラムの構造と解釈 Part3
http://toro.2ch.net/test/read.cgi/tech/1333015632/
0543デフォルトの名無しさん2014/04/30(水) 11:29:27.72ID:AhPxt9k+
マルチになるなあ
ま、いいか

今日、Kindleにsicp.mobi入れた
日本語訳のpdfも見たが、英文見たあとでないと意味よくわからん
英文主体で読む方がよさげ
悪名高い書籍版翻訳は見たことないが
さっさと英文で読めばいいのに

英文読めない人は
ラジオ講座で英語を勉強すれはいいのに
0544デフォルトの名無しさん2014/04/30(水) 14:11:35.73ID:DGQRHbLE
結論は毎回それだ、というかそれしかない

俺も訳は見てないからどっちの味方もできないけどね
0545デフォルトの名無しさん2014/04/30(水) 20:02:24.78ID:3Nbw0XIM
翻訳に問題があるのは前書きの部分だろ。
あれは格調高いとかそういうった類のものではなく、日本語になってない。
本文は別に言うほど酷い訳とも思わない。
0546デフォルトの名無しさん2014/04/30(水) 20:52:45.20ID:TRwZwwSE
そのパターンもあったな
0547デフォルトの名無しさん2014/04/30(水) 23:07:09.38ID:6mHWhLZ9
あの前書きは酷いよ。
0548デフォルトの名無しさん2014/05/01(木) 13:00:02.79ID:wvUyzZ5h
今日、プログラミングGaushe届いた
字が小さい!
文体硬い!

お蔵入り決定!
次の一冊はSchemeでやりたかったけどLand of Lispに変更!
0549デフォルトの名無しさん2014/05/01(木) 13:56:05.53ID:y6DqgIHn
プログラミング Gauche は Land of Lisp みたいにはっちゃけてはないけど、ヌルめの入門書だぞ。
お前はどんだけゆとりや。
0550デフォルトの名無しさん2014/05/01(木) 14:06:21.09ID:wvUyzZ5h
>>549
ばかなの?
内容についてはのぺてない

字がちいさい
文体硬い

読めたかなあ
0551デフォルトの名無しさん2014/05/01(木) 15:13:01.25ID:SvwoWGfY
>>550
文字が小さいのは同意するが文体固いか?
Land of Lispとくらべたらそりゃそうかもしれんけど。
ちなみに文字が小さい件はebook版で解消可能かと思っていたのだがPDF版しか出てないとかいう事実の前にオライリー死ねとマジで思う。
(文庫本サイズなら紙で買って自炊で済むがA4だとどもならん>>文字の大きさ)

全然関係無いけど Let over Lambdaと Land of LispってどっちもLOLになって困る
0552デフォルトの名無しさん2014/05/01(木) 15:31:26.57ID:C9mG8jmV
LOL と LoL
0553デフォルトの名無しさん2014/05/01(木) 16:03:38.88ID:dDPxjZND
Scheme版出てたと思うけど翻訳するかな?
0554デフォルトの名無しさん2014/05/01(木) 16:36:08.48ID:sAhQchW3
>>553
おお、情報サンクス、見つけた
0555デフォルトの名無しさん2014/05/01(木) 17:07:08.47ID:J2x9Tr8u
オライリーの本は皆あんなもんだろ、文字サイズ
0556デフォルトの名無しさん2014/05/01(木) 17:19:28.04ID:wvUyzZ5h
>>555
おお!LOL、Kindle版の原著しか見てなかったが、書棚のオライリー日本語訳みてみたら

字ちっちゃい!

ありがとう、Kindle
0557デフォルトの名無しさん2014/05/02(金) 15:42:49.86ID:bB8cQOyy
プログラムのお題スレ、
LispもSchemeも俺しか書いてないなあ
ここの常連エキスパートにはアホらしいほど簡単なのかな
プログラム初心者でLisp初心者の俺には楽しい挑戦だけど

あ、ここな

プログラミングのお題スレ Part3
http://toro.2ch.net/test/read.cgi/tech/1390525149/
0558デフォルトの名無しさん2014/05/02(金) 20:21:34.11ID:+OHeQQwC
おれはどう書く.orgの復活待ってるし
0559デフォルトの名無しさん2014/05/02(金) 21:24:46.44ID:+OHeQQwC
と思ったけど問題見てみた ちょっと偏ってるかな
0560デフォルトの名無しさん2014/05/02(金) 22:31:02.27ID:uljkUnkD
>>557
C で lisp を書いてるやつがいないか?
0561デフォルトの名無しさん2014/05/03(土) 00:32:12.60ID:NUTNzwaZ
UFC 128 - エリック・コク vs. ハファエル・アスンサオ
https://www.youtube.com/watch?v=n2CcU1A1i-0

UFC 134 - エリック・シウバ vs. ルイス・ラモス
https://www.youtube.com/watch?v=x25xIpNmhCo
0562デフォルトの名無しさん2014/05/03(土) 06:33:31.13ID:QORqD0QR
初心者な俺の感想
mapchar/mapはお便利だけど
それって小学生が方程式で安易に解を求めるようなものに思える(げ、昔の俺)
俺みたいな初心者はmap無しで地力を養うべきだな

お題スレでのClosure例見ての感想
0563デフォルトの名無しさん2014/05/03(土) 06:34:42.05ID:vaFKFtfV
>>562
あ、理由は簡単にできちゃうから
苦労して楽しむ
0564デフォルトの名無しさん2014/05/03(土) 07:43:43.36ID:a//LJ5TF
>>563
自分でmapやらを定義してみたら?
それはちょっと違うのか?
0565デフォルトの名無しさん2014/05/03(土) 09:40:36.46ID:TqtYx4K6
えーとこれは忠告しても聞かないパターンだな
0566デフォルトの名無しさん2014/05/03(土) 09:47:30.35ID:0ml3APIc
>>562
スレの636のclojure?
というか高階関数使わないでやる方がお題を解く言語選定の時点で間違いじゃないの?
0567デフォルトの名無しさん2014/05/03(土) 09:53:19.54ID:M/qDYqCt
本当の初心者の内はそれもありかもしれんと思うけど、
さすがに map くらいに自明なものから再構築するのはどうかな。
まあ程度問題だわな。
0568デフォルトの名無しさん2014/05/03(土) 12:58:43.52ID:s/rfVMUD
もう最小lisp作って勝手にやっとけよって感じ
0569デフォルトの名無しさん2014/05/03(土) 13:00:58.42ID:6HBqu3y5
Cちょっと習った人がアセンブラに憧れるパターンに似てる
0570デフォルトの名無しさん2014/05/03(土) 14:04:53.47ID:SFocP469
>>564
あ、そういうのは楽しいね
0571デフォルトの名無しさん2014/05/03(土) 14:05:46.92ID:SFocP469
>>569
君、馬鹿すぎ!
0572デフォルトの名無しさん2014/05/03(土) 14:25:28.92ID:f9gYWlLv
open-output-fileとか、既にファイルが有る場合の動作が未定義なんだけど
ファイルを上書きしたい場合とか、どうすれば良いの?
0573デフォルトの名無しさん2014/05/03(土) 14:53:50.28ID:M/qDYqCt
>>572
常に delete-file で消すしかあるまい。
0574デフォルトの名無しさん2014/05/03(土) 15:17:27.30ID:y1bmFmyi
処理系依存でいいじゃん
0575デフォルトの名無しさん2014/05/03(土) 15:25:30.57ID:M/qDYqCt
R6RS を使おう!
0576デフォルトの名無しさん2014/05/03(土) 16:56:06.49ID:f9gYWlLv
やっぱり処理系依存しかないのね

それはそうと、r6rsは上書きもできるしバイナリも扱えるし、実用的な規格だな
0577デフォルトの名無しさん2014/05/03(土) 21:36:26.99ID:M/qDYqCt
>>576
R6RS だと追加書込みモードが無いぞ。
方向性としては良いけど細かいところに不備多くて、
結局は処理系依存の機能を使うことになるので、
R6RS だから良いというわけでもない。
0578デフォルトの名無しさん2014/05/03(土) 22:03:05.29ID:yPk99aCV
RNRSの人たちは、真面目にハイパースペック読んでないんじゃね?
0579デフォルトの名無しさん2014/05/03(土) 22:21:52.75ID:M/qDYqCt
決定されたことに不満があるならともかく、
盛り込まれなかったこと、決定されなかったことは
まだ議論が足りないと判断したから先送りしたのかも。
0580はちみつ餃子 ◆8X2XSCHEME 2014/05/04(日) 00:46:15.20ID:uzMRkq8y
ファイルの追加書込みモードを仕様に追加するならモード全般の扱いについて一般化したがるのが Scheme クオリティ。
R6RS でもモードについては微妙にまとめきれてない感があるので、一旦更地にして議論しなおすべきだな。
0581デフォルトの名無しさん2014/05/04(日) 03:59:47.91ID:rOCS2Efp
Ocamlの Frama-c に対応するのって
Lispでは何になるのでしょうか
0582はちみつ餃子 ◆8X2XSCHEME 2014/05/04(日) 04:21:42.69ID:uzMRkq8y
対応するようなって言ってもな…。
静的解析全般をやれるようなツールってこと?
0583デフォルトの名無しさん2014/05/05(月) 16:53:18.53ID:wP+UVhzo
俺も某分野ではかなり頭の良いほうなんだが、
数学や記号処理のアルゴリズムのセンスは
ほんの少し出来る程度
なんだなあ

なに?文系もろだしだって?
どひゃひゃ

でも、稼いだのはプログラム関連で三億はいったんだぞ
ま、稼げるのと頭がよいのは違うんだがな
0584デフォルトの名無しさん2014/05/05(月) 16:54:50.47ID:TgbKI+Ut
肝心なことを書き忘れた
頭の良い人が羨ましい
0585デフォルトの名無しさん2014/05/05(月) 18:28:01.71ID:wP+UVhzo
もおもったら、ほめられた、あはは
http://toro.2ch.net/test/read.cgi/tech/1390525149/663
0586デフォルトの名無しさん2014/05/05(月) 18:33:18.18ID:ffC8nT8g
mjkt
0587デフォルトの名無しさん2014/05/05(月) 19:28:15.01ID:P4hu0Qed
> 俺も某分野ではかなり頭の良いほうなんだが、
> でも、稼いだのはプログラム関連で三億はいったんだぞ

無職が語る語るw
0588デフォルトの名無しさん2014/05/05(月) 19:43:56.67ID:I8tguett
>>587
あらら、このスレにもクズはいるんだ
あはは
お前、推理力無いに等しいな
乙
0589デフォルトの名無しさん2014/05/05(月) 22:53:39.07ID:/HOVuw4b
>>587
ほっといてやれよ、かわいそうだろ
0590デフォルトの名無しさん2014/05/06(火) 16:55:33.25ID:f7qfr4YR
スレ違いで居座る奴って
ワロタとかワラタとかつけないと語れないのな
0591デフォルトの名無しさん2014/05/07(水) 06:04:20.88ID:ErPCAkxH
チンコふりふり、ああいい湯だなぁ
継続で苦戦中
ウーム
0592デフォルトの名無しさん2014/05/07(水) 19:14:38.43ID:yqa0DhG9
そうか。
0593デフォルトの名無しさん2014/05/07(水) 20:47:50.48ID:rKnBy2nq
がっかい
0594デフォルトの名無しさん2014/05/08(木) 03:19:50.39ID:L/Pp55/2
池田って死んだの?
0595デフォルトの名無しさん2014/05/08(木) 03:40:44.53ID:HBWg5zBZ
まだ生きてることになってます

つーかスレ違いだってばさ
0596デフォルトの名無しさん2014/05/08(木) 06:36:45.82ID:YMmlCcBR
大作いつ死ぬの?
0597デフォルトの名無しさん2014/05/08(木) 11:01:14.54ID:KH+z9iVC
>>589
しんでろ、くず
0598デフォルトの名無しさん2014/05/08(木) 12:51:11.08ID:FbSc8Swp
>>597
図星で、顔真っ赤 (w
0599デフォルトの名無しさん2014/05/08(木) 12:55:37.57ID:WeA9eEmr
三億の人ネット知ったばかりの小学生みたいになってる
0600デフォルトの名無しさん2014/05/08(木) 15:26:03.53ID:PtIy+ZND
>>598
意味不明
低偏差値層の書き込みはどうしてもいつも同じパターンだな
0601デフォルトの名無しさん2014/05/08(木) 15:26:55.73ID:PtIy+ZND
さてと、稼げもしないクズのくせに
あはは
0602デフォルトの名無しさん2014/05/08(木) 16:27:57.28ID:cxy0T9yd
Haskellスレでやれ
0603デフォルトの名無しさん2014/05/08(木) 16:43:02.13ID:ZE5Ad/Nq
>>600
偏差値ねえ?w
0604デフォルトの名無しさん2014/05/08(木) 17:01:37.74ID:wWPRqp2a
あれだな
三億といっても.15年で割れば一年当たり大した金額ではない
それで、三億三億と書いてる奴って
よほど金にならないプログラマー?
稼ぐには信用が大切
頭よいだけじゃ駄目なんだよ
おれなんか、優秀な連中に
「がんばってね!」
といいながらオッパイ吸ってたからな
わはは
さてと今日はlambda式での再帰の勉強

あのね、リスプ系は頭いいかと思ってたが

墓もいるんだな
あはは
墓に入りなさい
0605デフォルトの名無しさん2014/05/08(木) 21:23:55.86ID:fVRUScBj
語彙少ないねこの人
0606デフォルトの名無しさん2014/05/08(木) 21:25:50.62ID:gIosECTp
>>474
だいたいわかったので
CCCで遊んでみたいのだけど
この文献で参照されてるOCamlで遊んだらいいのだろうか
Shenあたりで同じ事できないのだろうか
0607デフォルトの名無しさん2014/05/08(木) 21:26:10.91ID:anqLhap8
病人に触るな
0608デフォルトの名無しさん2014/05/08(木) 21:28:26.59ID:gIosECTp
>>581-582
OpenCVが頻繁にインターフェイスを変えてくるので
2年前ぐらいのOpenCV使ったプログラムはコンパイルできない事が多い

なのでOpenCVのインターフェイスをFrama-cみたいなツール使えば
自動生成できないかと
0609デフォルトの名無しさん2014/05/08(木) 21:32:26.13ID:jcfj6FZZ
>>607
病人あるいは、単に朝鮮人なのかもな。
ウリナラファンタジーなんだろうなあれが。
0610デフォルトの名無しさん2014/05/08(木) 21:52:37.41ID:gIosECTp
http://blog.samibadawi.com/2013/05/lisp-prolog-and-evolution.html
「Haskellの型推論はPrologのユニファイケーションと同じなんじゃないか」
みたいな事書いてあった

ということはProlog が組み込んであるShenが一番なのでは?
0611デフォルトの名無しさん2014/05/08(木) 22:07:23.75ID:DdCl0Xxb
発音はユニフィケーションではまいか
0612デフォルトの名無しさん2014/05/08(木) 22:17:04.08ID:JIZF9qTX
>>610
卒研で、HaskellでWAM作った俺は勝ち組だな…
0613デフォルトの名無しさん2014/05/08(木) 22:42:57.46ID:SsHMLBYd
久しぶりに来たらめちゃ荒れててワロスw w w w w w w w w w
0614デフォルトの名無しさん2014/05/08(木) 22:43:50.14ID:H799Rif2
まあ、レスできずにいきなり偏差値とか学歴とか言い出すいつものパターンな訳だが (w
0615デフォルトの名無しさん2014/05/09(金) 03:27:13.17ID:n6FjfsXo
>>614
はあ?
レスできずに?
おまえ、低学歴だな! あはは
レスすべき主張がないものにレスとは
0616デフォルトの名無しさん2014/05/09(金) 03:39:58.56ID:n6FjfsXo
そうだとしてしまい悦に入る
そういう「普通にお馬鹿」がおおすぎるな

みんなで思えばそうなんだもん

そういうレベルじゃまともな創造はできまい
あ、
>>605きみ、マジならばかすぎ
>>607これ、典型

>>609これは重症、民族差別にまで拡大させた


これはら結論のみの宣言であり、かつ、それは以下の
構造をもうだろう

そうだとしてしまいまいたる恣意に押されて
そうありあることを、そうであるとしてしまう

というお馬鹿は信仰宗教、ないし傲慢なる形而上学の
発想と同じものだな

ま、もう一組、その思考様式は
精神病者と低偏差値層によくみられるんたがな

ここでの実例は殆ど後者の組だろ
前者の組だと、彼らなりの理屈をつけるものだが
ここの書き込みはそれさえない

わははははははは
そのレベルじゃ模倣か単に演繹的な思考しかてきんだろ?
ま、貧乏に過ごせ
0617デフォルトの名無しさん2014/05/09(金) 06:37:01.78ID:gmFOA17u
http://www.shenlanguage.org/learn-shen/macros.html
shenのマクロってまさかこれしか出来ないの?
単なるパターンマッチ?
0618デフォルトの名無しさん2014/05/09(金) 08:00:33.60ID:jv8u2wzY
さあて、頭の悪い貧乏人を横目で見ながら今日も勉強するかのぅ
今日は継続やでぇ

今日の標語や

チンチンもそそり立つ俺様やけど
実るほど垂れるキトウかな

どや?勉強になったか?
0619デフォルトの名無しさん2014/05/09(金) 09:13:15.06ID:f5Zf3Edf
「貶め方」っていうのは、まさにその人の価値観が出るなあ。
性的に劣った存在であることがマイナスだと思えばそういう侮蔑の仕方をするし、
また、社会経験を積むことに価値を見出す人は「世間しらず」
「いい年で幼い行動」などと言って人を非難する。侮蔑こそ己を晒す行為なんだな
0620デフォルトの名無しさん2014/05/09(金) 11:46:01.11ID:MMJKVPjb
>>619
ほんとそれ。

>>616はどんだけ学歴コンプレックス持ってんだよ…。
中学生が必死で背伸びして書いたような痛々しい文章、
これはなかなか健常者には書けるもんじゃない。
恣意w 形而上学のw 思考様式w 演繹的な思考ww
0621デフォルトの名無しさん2014/05/09(金) 12:31:25.76ID:zswDXVh5
>>620
きみ、低偏差値層だろ?
意味もわからずに単語並べて馬鹿まるだしじゃないか。
どこの三流大学だか知らんが
リスプ系やってる割にひ科哲の教養ゼロに近いな
でも悔しいから書いちゃうか?
おまえさ、国会図書館に著作ある?
答えてみな
0622デフォルトの名無しさん2014/05/09(金) 12:33:56.13ID:zswDXVh5
>>620
というか、ここまで無教養だといわゆるニートの精神病かい?

恣意、思考様式、形而上学ていどの
殆ど知的日常語に近い語に凄いアレルギー反応だな

きみ、おバカの告白してしまったな
0623デフォルトの名無しさん2014/05/09(金) 12:57:55.86ID:aJ8WL+k5
久しぶりにDQNと言うものを見た気がする、芸風が古いというか。
0624デフォルトの名無しさん2014/05/09(金) 14:32:33.33ID:S85QmVft
Lispの選民思想の弊害かな?
0625デフォルトの名無しさん2014/05/09(金) 16:54:42.28ID:o58oUVDY
> おまえさ、国会図書館に著作ある?

ワロタ
0626デフォルトの名無しさん2014/05/09(金) 17:28:44.95ID:eJM5z6E0
馬鹿がlisp齧っても馬鹿は直らないのにね
0627デフォルトの名無しさん2014/05/09(金) 17:39:54.40ID:o0btTQ4b
リスプと書いちゃう人はだいたいアレな感じ
0628デフォルトの名無しさん2014/05/09(金) 21:39:18.18ID:B/3GqKbF
リスプエイリアンが喋ってると思えば意外と
0629デフォルトの名無しさん2014/05/10(土) 00:22:24.04ID:gFecByos
はいはい質問質問

+ って引数が可変なわけですけど、
処理系ではどうやって解釈しているんです?
つまり引数の数はVMへのコンパイル時にチェックしますか
それとも実行時にチェックしますか?
0630デフォルトの名無しさん2014/05/10(土) 00:33:51.25ID:DJS7XE7u
リストだから、引数の数は1個じゃないの?
0631デフォルトの名無しさん2014/05/10(土) 00:38:34.27ID:bSj8cWuc
まあ、処理系依存なんだが、だいたい dissasemble するとわかる。
とりあえず clisp の場合。

[1]> (disassemble #'(lambda () (+ a b c)))
{中略}
0 (GETVALUE&PUSH 0) ; A
2 (GETVALUE&PUSH 1) ; B
4 (GETVALUE&PUSH 2) ; C
6 (CALLSR 3 55) ; +
9 (SKIP&RET 1)

[2]> (disassemble #'(lambda () #'+))
{中略}
0 (CONST 0) ; #<SYSTEM-FUNCTION +>
1 (SKIP&RET 1)

前者はコンパイル時に引数の個数が決まっている
(CALLSR の第一引数が+に渡す引数の数)。

後者は引数の数を確定できないので、
#<SYSTEM-FUNCTION +> という関数を返している。
この関数が呼ばれるときは他の &rest 付き関数と同じ扱いになる。
0632デフォルトの名無しさん2014/05/10(土) 00:39:05.69ID:MPjg6ErO
>>629

コンパイル時です。SUBRの+は引数の個数を確認してスタックから引数をPOPします。
0633デフォルトの名無しさん2014/05/10(土) 00:59:47.67ID:XdpsAeNM
エイリアンはもっと頭良さそう
0634はちみつ餃子 ◆8X2XSCHEME 2014/05/10(土) 01:15:23.23ID:b9I69sqX
>>629
ナイーブな実装だと実行時になるんじゃね。
Common Lisp はよく知らないけど Scheme の場合は + を評価して手続きを取出すまでアリティはわからないわけだし、
評価はもちろん実行時なので実行時にならないとわからない。
そういう原則を踏まえた上でコンパイル時にチェックできる場合を特別に扱う最適化を入れる感じ。
0635デフォルトの名無しさん2014/05/10(土) 03:49:56.24ID:k5l6ZTQ+
ティンコもそそり立つ俺様やけど
実るほど垂れる乳首かな
0636デフォルトの名無しさん2014/05/12(月) 09:02:53.20ID:gUlXY5KM
「プログラムが実行されるとデータのみならず関数においても自分自身を書き換えながら処理をすすめ、処理が終わってもプログラムは書き換えられたままになっている。次にそのプログラムを実行するときは、その書き換えられた状態から始まる」
という事が(限定された意味であっても)できるんだな。
今日、Closureの勉強した後で、「となると・・できるんじゃね?」
と思ってやってみたらできましたなあ
うーむ、Schemeの勉強はおもしろいぞ
こりゃしばらくはナンパよりSchemeの勉強だ
0637デフォルトの名無しさん2014/05/12(月) 10:58:55.56ID:dnbz3Cdj
strictness analysis
って無限ループがあるかどうかを
判定しているだけって事でいいの?
0638デフォルトの名無しさん2014/05/12(月) 21:40:44.46ID:vVaOlzqd
違う。引数が必須かどうか判定してる。
コンパイラの最適化でやる到達可能性なんかと似た概念。
0639デフォルトの名無しさん2014/05/13(火) 09:13:01.18ID:NG4CQrCJ
cで処理系作っているのですが
VMの汎用レジスタorスタックって
なくてもcのローカル変数で代用できますか
またはそのような実装はありますか
0640デフォルトの名無しさん2014/05/13(火) 22:56:42.05ID:7V24yfmJ
とりあえずラッパしとけばいいんじゃね?
0641デフォルトの名無しさん2014/05/13(火) 23:40:15.92ID:LrIx+NvD
>>639
できるけど、
スタックには大きさの制限があるし
VMループから抜けると処理は再開できないしで
あんまいいことないよ。
0642デフォルトの名無しさん2014/05/14(水) 19:24:28.23ID:XLa7Hr8t
そうか。
0643デフォルトの名無しさん2014/05/14(水) 22:34:00.53ID:vA2Ser57
この地味に

そうか。

ってのむかつくんだけど
なにがむかつくってスレ開いて新着レスキタ - .∵・(゚∀゚)・∵. - ッ!!とかおもったら

そうか。

だよ
結構イライラするからやめてくれ

でまた

そうか。

だろ?やめろ
0644デフォルトの名無しさん2014/05/14(水) 23:53:38.36ID:7rZcewE9
そんなことないよ。
0645デフォルトの名無しさん2014/05/15(木) 00:43:36.49ID:DCYjRRb4
せやろか?
0646デフォルトの名無しさん2014/05/15(木) 01:04:36.71ID:SKUPxDKZ
>>643

なんだお前じゃなかったのか
0647デフォルトの名無しさん2014/05/15(木) 04:16:52.55ID:zU62setb
>>643
そうか
0648デフォルトの名無しさん2014/05/15(木) 19:59:43.64ID:eNbFmNO2
>>643
そうか
0649デフォルトの名無しさん2014/05/16(金) 08:11:15.59ID:1smShKMA
scheme-reports 読んだりしてる?
0650デフォルトの名無しさん2014/05/18(日) 15:35:44.17ID:3TnYf5eg
関数の引数の順番は
(f 継続 出力値のポインタ1 出力値のポインタ2... 入力1 入力2 ...)
で共通化してほしい
0651デフォルトの名無しさん2014/05/18(日) 16:17:18.84ID:mmOjks5D
へ?
((f 継続 出力地のポインタ) 入力)
0652デフォルトの名無しさん2014/05/19(月) 00:47:23.24ID:ifX/zEHk
>>651
その方式って何処かで推奨されてるの?
0653デフォルトの名無しさん2014/05/19(月) 06:14:16.82ID:SdRbB6EK
ワシはアナルにプチトマト入れたり出したりしとる
ごっつう気持ちええで〜
0654デフォルトの名無しさん2014/05/19(月) 23:46:00.75ID:UTlgg7GA
そうか
0655デフォルトの名無しさん2014/05/20(火) 14:44:18.95ID:DHV6nY+2
そもそも継続って何ですか?
0656デフォルトの名無しさん2014/05/20(火) 16:03:54.48ID:UDjxMmTz
プログラムを実行していると、関数呼び出してから元に戻ったり、
ループの先頭に戻ったりするでしょ。
その戻るために必要な「状態」のこと。
0657デフォルトの名無しさん2014/05/20(火) 23:27:40.42ID:r2BdXUha
>>655
機械が次に実行する事に必要な情報
0658デフォルトの名無しさん2014/05/21(水) 00:02:07.52ID:0uwvVSSn
継続はsetjmp継続呼び出しはlongjmp
ただしsetjmpした環境を持ちまわればどこでもlongjmpできる点のみが違う
要するにコストの高いsetjmp
大抵の実装ではcall/ccを呼んだ時点でその継続はヒープに移動するところがsetjmpと違う
以後全てはヒープに移動した継続を自動的に参照する
0659デフォルトの名無しさん2014/05/21(水) 17:24:23.10ID:tufOZY/+
setjmpはcall/ccだよ。継続保存。
0660デフォルトの名無しさん2014/05/21(水) 17:25:07.31ID:tufOZY/+
jmpbufが継続ね。不完全ながらも。
0661 ◆QZaw55cn4c 2014/05/21(水) 18:14:44.40ID:7/zI56kW
>>658
thx!!
0662デフォルトの名無しさん2014/05/22(木) 12:47:33.86ID:X7SJFDRl
しかしCは凄いな。
当時よくこのレベルでの抽象化を思いついたもんだ。
0663デフォルトの名無しさん2014/05/22(木) 17:44:17.78ID:MMgx68uU
非局所脱出は別に珍しいものじゃなかったでしょ

まあライブラリでやっちゃったのは凄いとは思うけど
0664デフォルトの名無しさん2014/05/22(木) 21:16:16.23ID:jXtoQOHc
C自身でポータブルに書けるなら凄いかも知れんが。
0665デフォルトの名無しさん2014/05/22(木) 21:43:25.64ID:Fu9GuZb0
シグナルハンドラーからlongjmpとか結構凄い。
0666はちみつ餃子 ◆8X2XSCHEME 2014/05/22(木) 23:56:16.26ID:N8DUxA9y
C++ だと Boost.Context もあるよ
0667デフォルトの名無しさん2014/05/28(水) 12:55:28.88ID:X/2WS0UX
だれかcで処理系作ったて人コード見せてほしいっす
0668デフォルトの名無しさん2014/05/29(木) 00:11:50.72ID:NFEFAaY+
見せたら俺Lispじゃなくなってしまう

大学の演習で簡易版を作らされたから、ネットにいっぱい転がってるはずなんだけどな
0669デフォルトの名無しさん2014/05/29(木) 03:22:56.46ID:knodhQSh
>>667
Schemeだとcallccで面倒だけど、普通にLisp1系なら1週間有れば趣味でも実装できるっしょ?
0670デフォルトの名無しさん2014/05/29(木) 04:00:08.17ID:IYXfC5c1
教科書も参考事例もなしに完全に自力だけで再発明しようとするとけっこう苦労すると思うぞ
0671デフォルトの名無しさん2014/05/29(木) 04:02:31.10ID:IYXfC5c1
たとえばマーク&スイープ法を自力で思いつける人ってどれだけいるだろうか?
0672デフォルトの名無しさん2014/05/29(木) 09:02:31.16ID:DuN7PD4D
call-with-current-continuationのお勉強が一応終了
あんたにもこんな初心者レベルの頃があったんやで
ええ、いくらでもけなしてくれなはれ
わし、勉強するわ

http://codepad.org/eym6WeCK
0673デフォルトの名無しさん2014/05/29(木) 09:06:38.83ID:ie7ojQhi
>>671-672
どうして既存のものを参考にしない前提なの?
趣味ならそういう縛りでやるのも勝手だけど、
偉大なる先人と比べたら大抵の人間が無能なのはあたりまえじゃん。
それでも先人より先に進めるのは先人の成果を利用して学ぶからだろ。
0674デフォルトの名無しさん2014/05/29(木) 13:10:15.09ID:knodhQSh
>>671
普通にゴミ集め書いたら何もマークアンドスイープにしかならんのじゃないの?
んでもってがっつりと時が止まる所で悩む
0675デフォルトの名無しさん2014/05/29(木) 14:40:20.29ID:pVyo0eCY
最初に見た本に書いてあったのでなんとも
0676デフォルトの名無しさん2014/05/29(木) 18:46:58.43ID:DuN7PD4D
>>673
わし、その大多数のなかに入ってないねん
0677デフォルトの名無しさん2014/05/29(木) 19:38:04.78ID:KpyrHqAC
処理系のデータタグについて「データに持つ」と「ポインタが持つ」のでは速度にどれぐらいの差がでるのだろうか
0678デフォルトの名無しさん2014/05/29(木) 22:19:29.29ID:ie7ojQhi
>>676
なら成果をどんどん発表してね。 期待age
0679デフォルトの名無しさん2014/05/29(木) 22:26:16.48ID:ie7ojQhi
>>677
かなり状況に左右されるんじゃねーの。
int 幅にポインタを格納してもどうせ何ビットか余るわけだし、
余った分を活用するのは合理的に思える。
0680はちみつ餃子 ◆8X2XSCHEME 2014/05/29(木) 23:53:40.63ID:ie7ojQhi
>>674
C++ とかから流れてきた人は自然に参照カウンタ使いそうな気がする。
0681デフォルトの名無しさん2014/05/30(金) 23:37:32.00ID:m0R2Acz2
ポインタにタグ付けると玄人っぽい
0682デフォルトの名無しさん2014/05/31(土) 00:45:30.60ID:e8li9CXk
lisp処理系を作りたくなったけどGC面倒臭いな
前に書いたときはmark&sweepを自力で書いたけどstackにpushして一時的に保護したり面倒臭すぎる
もうboehm-gc使ってみようかと思ったけどまた自力で書いたほうがいいのかな
0683デフォルトの名無しさん2014/05/31(土) 00:53:09.25ID:2L0xFU1r
書けるものは全部全部自分で書け
0684はちみつ餃子 ◆8X2XSCHEME 2014/05/31(土) 08:33:36.21ID:q75cQArE
トレードオフの問題じゃないか。
どちらかが良いという問題ではなくて、それぞれのメリット/デメリットを考えて、
自分がやろうとしていることにどちらがマッチするかで考えればいい。

面倒くさいとわかっていることに手を出して途中で飽きるくらいなら Boehm GC を使った方がいいと思うけど、
面倒くさくてもそれは自分でやらなきゃ意味がないと思うならやればいいんじゃないの。
最初は Boehm GC を使って余裕があればあとから独自の GC に置き換えるというのでもいいし。
0685デフォルトの名無しさん2014/05/31(土) 12:36:49.56ID:SYzWFJha
自分で書くとしたら一時的に使ってる値が
片付けられる問題をGC側が解決してくれるようにしたい
それだとmark&sweep以外のアルゴリズム使わないとだめなのかな
0686デフォルトの名無しさん2014/05/31(土) 14:45:11.77ID:iRT5FyvM
>>685
ちょっと読み違えているかもしれないが。
smalltalk-80の実装は、
メソッド呼び出し内では参照カウントで管理して、破棄できるものはreturn時に破棄、
システム全体はmark&sweepという併用だった。
参照カウントだけだとループがある時に問題になるので。
0687デフォルトの名無しさん2014/05/31(土) 16:45:47.91ID:YxBnxiuU
LoLやべぇ
haskell共和国で腹筋崩壊した
0688デフォルトの名無しさん2014/05/31(土) 21:54:47.69ID:ozxeunj2
Haskellは活気があって羨ましい。
でも、あれは完成形じゃない気がする。
だから、まだ land of lisp の復興はあり得ると思うんだ、何が必要かは分からんけど。
0689デフォルトの名無しさん2014/05/31(土) 22:37:18.69ID:XFgqF1Rd
land of lispのほうのlolはhaskellを持ち上げてたけど
let over lambdaのほうのlolはhaskellをあまりよく書いてなかったね

それより自作のlisp処理系にキーワードを付けようか迷う
lisp-2だからcommon lispに合わせて付けたほうがいいかな
0690デフォルトの名無しさん2014/06/01(日) 00:38:47.97ID:Teq6IDrL
純lispのアトムってTとNILだけ?
0691デフォルトの名無しさん2014/06/01(日) 00:44:17.67ID:D/HvdSEw
>>689
必須でもないからな
0692デフォルトの名無しさん2014/06/01(日) 02:16:45.57ID:6j1AF/cE
>>690
List以外の全てがAtom
0693デフォルトの名無しさん2014/06/01(日) 07:01:09.59ID:Teq6IDrL
>>692
最低限必要なアトムは?
0694デフォルトの名無しさん2014/06/01(日) 07:26:00.52ID:YcJ1a4/i
>>692
>>690
tとnilとくればSchemeではないので

(defun is-atom? (x)
(not (listp? x)))

だとうまくいかない。nilは空リストを意味してしまうからである。つまり
「リストではないものはアトム」とはいえない
どうしてもいいたいならば
「空でないリストはアトムではない」とはいえる


そうではなくて
「(コンス)セルではないものはアトム」である
(defun is-atom? (x)
(not (consp x)))

逆にSchemeでそれがアトムかどうかを判定させるには
(define is-atom?
(lambda (x)
(not (pair? x)))

ではうまくいかない。空リストが考慮されてないからである
それゆえ
(define is-atom?
(lambda (x)
(and (not (pair? x))
(not (null? x)))))

Common Lisp系の場合はnilの特異性(nilはアトムでもあり
リストでもある唯一のシンボル)のためアトムとリストの対応ではなくアトムとコンスセルの対応を基本に据えないと見通しが悪くなる
0695デフォルトの名無しさん2014/06/01(日) 07:28:47.86ID:YcJ1a4/i
× listp?
○ listp
0696デフォルトの名無しさん2014/06/01(日) 07:31:28.62ID:YcJ1a4/i
>>693
それは
t,nilの2つにくわえ
(nyotai naoko ikuko ayako beautiful sexy erotic )
があればいいんじゃないか?
0697デフォルトの名無しさん2014/06/01(日) 09:59:24.61ID:YlwYcK2D
>>696
いや、 anal も必要だろ。
0698デフォルトの名無しさん2014/06/02(月) 00:28:17.75ID:IzxWCtpR
>>608
OpenCVのインターフェイスが頻繁に変わるのは政治的な理由があると思う
OpenCV本家のpythonバインディングより出来のいいバインディングを誰かが作ると
毎回インターフェイスが変更される

この「技」を潰されちゃうと
開発者がへそまげてOpenCV自体が消える可能性ある
0699デフォルトの名無しさん2014/06/05(木) 12:34:46.65ID:8uloiXMt
? Build Your Own Lisp
http://www.buildyourownlisp.com/
これを使ってlispの実装をしてみようと思うのですが、これはどういう風に評価されている教材なのでしょうか
0700デフォルトの名無しさん2014/06/05(木) 20:14:44.22ID:og4ZcvMZ
common lisp寄りの処理系作って[るた]人いる?
コンディションの実装糞面倒だからreadとevalとraiseの三種類で誤魔化そうとしたけど
handler-case書けなくなるし困った
こういうのどこで妥協するかが一番難しいと思った
0701デフォルトの名無しさん2014/06/06(金) 00:18:08.21ID:VcdXGPw8
そうか
0702デフォルトの名無しさん2014/06/06(金) 09:32:36.52ID:7nE+uYTj
この地味に

そうか。

ってのむかつくんだけど
なにがむかつくってスレ開いて新着レスキタ - .∵・(゚∀゚)・∵. - ッ!!とかおもったら

そうか。

だよ
結構イライラするからやめてくれ

でまた

そうか。

だろ?やめろ
0703デフォルトの名無しさん2014/06/06(金) 10:30:05.79ID:3FiK28W7
無論・・・

そうか
0704デフォルトの名無しさん2014/06/06(金) 12:42:43.90ID:iMYjirOz
せやな
0705デフォルトの名無しさん2014/06/07(土) 03:00:59.41ID:P2TDtsm6
「そうか」とか「せやな」とか言うくらいならLISPと関係なくてもいいから雑談でもしてくれた方がいいと思う。
0706デフォルトの名無しさん2014/06/07(土) 03:31:50.78ID:OmD0qLId
せやろか
0707デフォルトの名無しさん2014/06/07(土) 04:16:24.10ID:NewEEkV8
そうかな
0708デフォルトの名無しさん2014/06/07(土) 08:20:11.41ID:1GJMra0o
Swift どうだろね、REPL あるようだし、ベターjavascript と思えば lisper にも受け入れられるかな?
0709デフォルトの名無しさん2014/06/07(土) 08:24:49.21ID:rofUEf38
うにっくすでつかえるんか?
オランダの飾り窓でつかえるんか?
スズキかたるなら佐藤さん語れや
0710デフォルトの名無しさん2014/06/07(土) 13:19:28.29ID:wf5Eu0QY
Listしか使わないなら
file-name.xxx
でいいのだけど、いろんな言語を相互に呼び出したりすると
どうしても
file_name.xxx
に統一したくなる
fileName.xxx
は論外
0711デフォルトの名無しさん2014/06/07(土) 13:23:19.12ID:1GJMra0o
>>709
Mac はUNIXだし後は何言ってるかさっぱり分からない
0712デフォルトの名無しさん2014/06/07(土) 15:35:29.08ID:P2TDtsm6
>>711
Mac は Unix かもしれないが、 Unix が Mac であるとは限らないだろ。
0713デフォルトの名無しさん2014/06/07(土) 16:40:01.15ID:GAICIAD/
任意の UNIX で使いたいのかよ、むちゃな
0714デフォルトの名無しさん2014/06/07(土) 16:44:29.81ID:OmD0qLId
リスパーってSwift使うときはリスプをSwiftに変換するプログラム作るんでしょ?
0715デフォルトの名無しさん2014/06/07(土) 16:50:48.79ID:lJ+qd9Ld
Swiftを使う必要が出来たらそうするけど多分無いわ
0716デフォルトの名無しさん2014/06/07(土) 17:38:27.41ID:SRkoD9Jh
>>714
今Lisp -> Obj-CしてるんでSwift別に必要ねぇ感じ。
SwiftでしかiOSコード書けないなら捨てだろうし。
0717デフォルトの名無しさん2014/06/08(日) 04:32:45.36ID:euvvSTx+
それってNuのこと?
それとも自作?
0718デフォルトの名無しさん2014/06/10(火) 07:59:08.60ID:nxVaHdwk
http://nshipster.com/colophon/ (震え声)
0719デフォルトの名無しさん2014/06/10(火) 07:59:53.71ID:nxVaHdwk
こっちだった
http://nshipster.s3.amazonaws.com/cfhipsterref-cover.png
0720デフォルトの名無しさん2014/06/11(水) 12:15:34.94ID:PI7tChz5
まだ基礎を勉強中なのに継続の勉強ばかりしていたら再帰の基礎が崩れた
ウーム
また、やり直す
英語の勉強にもなるし。
0721デフォルトの名無しさん2014/06/11(水) 12:42:04.95ID:iXEwBJFy
そうか。
0722デフォルトの名無しさん2014/06/11(水) 23:48:23.54ID:VPWYtuav
勉強すると、他の勉強の基礎が崩れるの?
0723デフォルトの名無しさん2014/06/11(水) 23:58:18.05ID:NCsy5Ev1
FIFOなんじゃね
0724デフォルトの名無しさん2014/06/12(木) 00:10:52.40ID:Mh5hosWy
たとえ無限ループだろうと完走を祈る
0725デフォルトの名無しさん2014/06/12(木) 04:24:22.06ID:pmHO11BH
fifo頭か、そうかもな
ま、続けよう
0726デフォルトの名無しさん2014/06/12(木) 04:25:06.15ID:pmHO11BH
>>724
ありがとう
0727デフォルトの名無しさん2014/06/12(木) 08:37:19.12ID:dUABq+fE
>>722
足し算思考だとそうなるね。
掛け算思考なら相乗効果で捗るが。
0728デフォルトの名無しさん2014/06/12(木) 11:41:13.59ID:i9E67NrQ
足し算なら問題ないのでは...
0729デフォルトの名無しさん2014/06/12(木) 12:22:04.27ID:FPQaqgXk
ムム
足し算なら俺でもできる
(+ a bc)
だな
おお!勉強の成果だ!
0730デフォルトの名無しさん2014/06/12(木) 16:28:20.76ID:i9E67NrQ
n次元空間のベクトルの和や積ではどうだろうか?
0731デフォルトの名無しさん2014/06/12(木) 16:58:39.09ID:FPQaqgXk
ウーム
とりあえずチンポ弄くってから考えてみる
0732デフォルトの名無しさん2014/06/12(木) 19:03:08.04ID:sI6dCmEZ
>>727
たまに1以下の数字が乗じる事があるんだよね
0733デフォルトの名無しさん2014/06/12(木) 22:02:34.55ID:Ap4t2hw8
プログラミング言語の実用性を実数部に、ハッタリ度を虚数部にした複素数とし、和と積を考えるとどうだろうか。
COBOL: 1+0i
足すごとに実用性が増すが、掛けても何も変わらんw
0734はちみつ餃子 ◆8X2XSCHEME 2014/06/13(金) 15:22:36.90ID:/qpuWCLD
ピタゴラス学派かよ
0735デフォルトの名無しさん2014/06/13(金) 22:58:08.47ID:txXJF54B
>>732
0 とか -1 とかもあるしね (w
0736デフォルトの名無しさん2014/06/13(金) 23:09:51.86ID:IVqCc1OG
一度は多く概念に怯え逃げたが
再び戻って参りました
0737デフォルトの名無しさん2014/06/14(土) 00:18:02.45ID:+FDTKVzA
どういう概念に怯えたの?
それとも概念の数の多さに怯えたの?(そんなに、概念多いかなあ)
0738デフォルトの名無しさん2014/06/14(土) 00:23:59.66ID:D/SadlAq
60年間のプログラミング言語のパラダイムすべてを包括しているというツギハギだらけの概念に怯える
0739デフォルトの名無しさん2014/06/14(土) 00:52:31.59ID:zGKoSDUt
Lisp/Scheme に特有の概念っていうのはもうほとんど無いだろ。
0740デフォルトの名無しさん2014/06/14(土) 00:56:34.43ID:xBHo5yPo
同図像性とか
0741デフォルトの名無しさん2014/06/14(土) 00:58:52.14ID:LdrUXIu0
S式くらいかな。
0742デフォルトの名無しさん2014/06/14(土) 01:00:02.41ID:D/SadlAq
マクロがすべて悪い
0743デフォルトの名無しさん2014/06/14(土) 01:00:11.30ID:LdrUXIu0
>>740
それだとXSLTがある。というかもう使われて「ない」のかな?
0744デフォルトの名無しさん2014/06/14(土) 02:12:28.49ID:/t1vIzIu
The Little Schemer を読み終えたら次は何を読むべき?
0745デフォルトの名無しさん2014/06/14(土) 02:13:04.33ID:+FDTKVzA
読み終えたの?
0746デフォルトの名無しさん2014/06/14(土) 02:30:24.22ID:+FDTKVzA
リトルスキーマーはCELLとListの差に触れないだろ?
そこがなあ、一冊目にやるのはどうなのか
二章か3章で欄外に
(car (cons a b)) -> a
(cdr (cons a b)) -> b
と注記はされているけど
それは
What is (cdr b)? where a is 123.
の答えが
No answer. because b must be a non-empty lisp
としているので、
actuallyと注記がある
だったと記憶している
細い記述は本文とは異なる
こんな事!でしたねえ、、、、です
リトルスキーマはSchemeらしく継続までやってるのはいいと思う
でもなあ、最初はCommon Lispではあるけど
「LIST遊び」のほうがいいような気がする
CELLもちゃんと始めからやるし
セルのつながりとしてのListという事を基礎に据えられる
因みに俺はLIST遊びからリトルスキーマーをやった口
0747デフォルトの名無しさん2014/06/14(土) 02:33:59.02ID:+FDTKVzA
あ、ポスト、リトルスキーマーか
LIST遊び (Common Lisp
プログラミングGauche (Scheme)
あたりは?
0748デフォルトの名無しさん2014/06/14(土) 03:42:13.86ID:zGKoSDUt
>>746
コンスセルとリストの関係の話とか、そんなに腰を据えてやらなきゃならないほど難しいことか?
それをどう使うか、使えるのかっていうことを示さないと「それで?」ってなるだろ。
「あ、さっきのやつはこう使えるんだ〜」っていう順序がきちんとしてるのが Little Schemer じゃないか。
わからないときは戻って読み返せばいいんだし。

高校生のときを思い出してみろよ。
行列を方程式に対応付けて機械的な作業で解いたり計算量を減らしたりして物理計算が楽になったりしただろ。
グラフィックの計算に使えるぜーとか、そういうの無しで延々と行列の定義を覚え続けて頭に入るか?

実際に使われる場面を見て、なるほどこういう風に役に立つのかってなる方が学びやすいと思うんだよな。
0749デフォルトの名無しさん2014/06/14(土) 04:10:11.28ID:RGY3g82H
>>748
腰を据えるではなくて
基礎に据える

あのな、いくら読み返してもコンスセルの話はでてこないだろ
関連して
(car (cons a b)) -> a
(cdr (cons a b)) -> b
が注に出るだけ
あくまでアトムとリストの対比の世界でものを考えることになるのがリトルスキーマー
ま、そういう方針の本なんだな
あくまで、「初めてやる本でしょ?」だろうから
そのうえで、ま、よく階梯を持つと思うよ。良い本です

atomとリストのなかでものを考えているから可能となってしまう
不適切な考察がここやCommon Lispのスレで何度か見かけた
コンスセルの連鎖関係がリストの実体であり
リストはあくまで表現にすぎない
と思えるかどうかだな
0750デフォルトの名無しさん2014/06/14(土) 08:47:08.24ID:Rm8HxN97
"An Introduction to Scheme and its Implementation"って結構いいな
>>749みたいな話もちゃんとしてる
0751デフォルトの名無しさん2014/06/14(土) 09:25:29.34ID:LdrUXIu0
>>746
同意できない。
0752デフォルトの名無しさん2014/06/14(土) 10:46:14.21ID:RWrtwXRC
>>749
> 腰を据えるではなくて
> 基礎に据える

はあ?
腰を据えるの意味調べてこいよ
0753デフォルトの名無しさん2014/06/14(土) 11:17:03.24ID:RGY3g82H
>>752
頭悪すぎる
しかし、開き直るとは思わなかった
0754デフォルトの名無しさん2014/06/14(土) 12:46:17.59ID:RWrtwXRC
>>753
腰を据えるの意味と、どうおかしいのか書いてみな
0755デフォルトの名無しさん2014/06/14(土) 15:19:37.26ID:kVfPiGuj
胡椒と酢で和える とても美味しい
0756デフォルトの名無しさん2014/06/14(土) 22:06:49.77ID:n5vNq/0C
新玉ねぎのサラダうまいぞ
0757デフォルトの名無しさん2014/06/15(日) 12:36:26.00ID:RRrISo1f
新タマネギは薄くスライスして花鰹振りかけて醤油で食うのが好き、甘くて美味しい。
Lispの括弧もタマネギみたいで好き
0758デフォルトの名無しさん2014/06/15(日) 12:38:42.06ID:IRi7fyG5
(((((())))))
0759デフォルトの名無しさん2014/06/16(月) 12:11:11.89ID:QdbRzEa/
あれ
0760デフォルトの名無しさん2014/06/16(月) 12:15:45.92ID:QdbRzEa/
The Little Schemerで number?は基本関数だからatom?などと同じように定義できませんという記述があるんだけども、
できますよね

atom?に関しては注で
(deifne atom?
(lambda (x)
(and (not (pair? x))
(not (null? x)))))

とされてますし、number?は
(define number?
(lambda (x)
(and (not (pair? x))
(not (symbol? x))
(not (string? x))
(not (eq? x #t))
(not (eq? x #f)))))

でいけると思うんですが、間違いですか?
0761デフォルトの名無しさん2014/06/16(月) 13:08:24.18ID:RIOX5DV+
やたら冗長な
0762デフォルトの名無しさん2014/06/16(月) 17:02:23.57ID:Ys5PGdkC
>>760
data domainがclosedならokですね。
0763デフォルトの名無しさん2014/06/16(月) 21:02:53.20ID:grRCv1F+
それにしたってその定義はいろいろ足りないけどな

(number? #\A) とか
0764デフォルトの名無しさん2014/06/16(月) 21:32:39.60ID:SQhI/GVo
813 名前:デフォルトの名無しさん[sage] 投稿日:2014/06/15(日) 16:48:31.43 ID:ff3DF+/U
ぐぐってみたけど、shi3zさんは回路図とブロック図の区別がついてなさそう。

http://enchantmoonstrokes.appspot.com/#52021019350840f7400ea0bc150d6562d0cb0e30a35b740ca

しかし突っ込みどころが多すぎてなかなか楽しい図だなw

814 名前:デフォルトの名無しさん[sage] 投稿日:2014/06/15(日) 17:16:40.51 ID:BWS0xqiu
なんであんなトンチンカンなおっさんが未踏に採択されたのか謎

815 自分:デフォルトの名無しさん[sage] 投稿日:2014/06/15(日) 17:29:15.50 ID:e7vXG3hh [1/2]
未踏とかLispインタープリターが作れれば採択される
ゴミLisperの集金プロジェクトだし

819 返信:デフォルトの名無しさん[sage] 投稿日:2014/06/15(日) 22:21:40.55 ID:QhTFjgfY
>>815 お、ゴミがいたw

820 自分:デフォルトの名無しさん[] 投稿日:2014/06/15(日) 22:32:13.37 ID:e7vXG3hh [2/2]
未踏は湯浅とかいうゴミが特に酷かった
自分でPMやって採択してスーパークリエーターになってた
早く死ねばいいのに

821 名前:デフォルトの名無しさん[sage] 投稿日:2014/06/16(月) 16:35:52.76 ID:7he4xSgp
自分が単位を落としたのをLispのせいにするようなバカは、そのバカのせいで早く死ぬだろうねw

822 名前:デフォルトの名無しさん[] 投稿日:2014/06/16(月) 21:23:47.94 ID:AQ6Cimo3
単位を落としたのは100%教員のせいだよね

823 自分:デフォルトの名無しさん[sage] 投稿日:2014/06/16(月) 21:24:24.61 ID:dyNK9zKr
湯浅って自分でPMやって自分で天才とかやってて
小保方と同類だわ
0765デフォルトの名無しさん2014/06/17(火) 03:02:11.20ID:8NL9gBpR
湯浅さんはCommon Lispの世界初の実装者だろ。
向こうのリアルハッカーたちが唖然としたほどの天才。
0766デフォルトの名無しさん2014/06/17(火) 03:30:47.66ID:DtFQMbHJ
イチからのフル実装としてはでしょ。
既存実装のCommon Lispパッケージはたくさんあった。
ネイティブコンパイラ付きでCで実装してあって
ポータブルですごいと思うけど。
0767デフォルトの名無しさん2014/06/17(火) 04:38:01.41ID:XCkc5Kly
今となっては税金にたかる
時代遅れの老害でしかないわな
0768デフォルトの名無しさん2014/06/17(火) 04:43:07.17ID:EoTBFViS
>>765
その程度で唖然とするとか
リアルハッカーじゃなくて
リアルバカだろw
0769デフォルトの名無しさん2014/06/17(火) 04:57:10.94ID:C18bsXVu
今どきの人にはネイティブコンパイラとかCとか言われても
当たり前のことで、凄さは伝わらないよ。
向こうのハッカーが湯浅の話をしているのを聞いたこともないし、
完全に過去の人だね。
0770デフォルトの名無しさん2014/06/17(火) 05:06:29.35ID:npjjegMO
765って皮肉でしょ?なんでマジレス
0771デフォルトの名無しさん2014/06/17(火) 05:10:38.71ID:P/v4NjRU
湯浅三への蔑み、なにが動機?
0772デフォルトの名無しさん2014/06/17(火) 05:12:52.58ID:J13U+mpJ
ごく一部の人がLispの仕事に就職して
Lispの仕事は需要あるみたいなこと言ってて
この人大丈夫なのって思った
0773デフォルトの名無しさん2014/06/17(火) 06:50:12.74ID:P/v4NjRU
核融合の仕事は需要あるとおなじじゃね?
0774デフォルトの名無しさん2014/06/17(火) 13:56:29.03ID:ESFi67xp
>>772
就職してるのなら需要あるは事実だろうよ。
たくさんあると言っているわけじゃないんだろ?
0775デフォルトの名無しさん2014/06/17(火) 14:10:49.63ID:pUnsndMy
Lispの仕事にありつくのはごく一部だけで
供給過剰だから
0776デフォルトの名無しさん2014/06/17(火) 14:35:23.30ID:5EztAZ0B
だからなに?
0777デフォルトの名無しさん2014/06/17(火) 14:42:31.84ID:qZ+Kte3R
供給過剰のLispプログラマを
これ以上生産するべきではない
0778デフォルトの名無しさん2014/06/17(火) 14:52:04.44ID:aG80NVb6
エセlisperの選民思想持ちは中高生かな
0779デフォルトの名無しさん2014/06/17(火) 15:07:02.41ID:5EztAZ0B
>>777
このひと、別スレでも書いてる人?
精神病じゃない?
0780デフォルトの名無しさん2014/06/17(火) 15:09:17.34ID:3Q+4KXzI
精神病なのは自作自演で
天才プログラマとかやってる
湯浅ってバカだろ
0781デフォルトの名無しさん2014/06/17(火) 15:33:16.92ID:ESFi67xp
あらまw
0782デフォルトの名無しさん2014/06/17(火) 15:45:10.70ID:3Q+4KXzI
         ,,-―--、
        |:::::::::::::;;;ノ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        |::::::::::( 」 <  たくさんあると言っているわけじゃない
        ノノノ ヽ_l   \______________
       ,,-┴―┴- 、    ∩_
     /,|┌-[]─┐| \  (  ノ
      / ヽ| |  バ  | '、/\ / /
     / `./| |  カ  |  |\   /
     \ ヽ| lゝ    |  |  \__/
     \ |  ̄ ̄ ̄   |
      ⊂|______|
       |l_l i l_l |
       |   ┬    |
0783デフォルトの名無しさん2014/06/17(火) 15:52:04.81ID:g0jiBHem
いつもの人だろ相手すんなって
0784デフォルトの名無しさん2014/06/17(火) 16:04:52.38ID:th53rZYK
湯浅みたいバカは世界中探しても
他にいない
0785デフォルトの名無しさん2014/06/17(火) 16:15:27.91ID:LIIwEXMh
さよか
0786デフォルトの名無しさん2014/06/17(火) 16:16:54.99ID:th53rZYK
さよで
0787デフォルトの名無しさん2014/06/17(火) 17:27:33.68ID:5EztAZ0B
なんか無能な人のやっかみについて聞こえる
0788デフォルトの名無しさん2014/06/17(火) 17:34:42.28ID:p+hPxJPg
正しくその通り
0789デフォルトの名無しさん2014/06/17(火) 17:41:49.76ID:th53rZYK
無能でも無害ならいいけど
湯浅は無能で有害だからなあ
0790デフォルトの名無しさん2014/06/17(火) 17:49:21.52ID:LIIwEXMh
何処がどうしてを指摘しないのなら戯れ言でしかないよ
0791デフォルトの名無しさん2014/06/17(火) 17:56:07.79ID:th53rZYK
税金にたかる蠅なんだわ
0792デフォルトの名無しさん2014/06/17(火) 18:13:32.85ID:5EztAZ0B
>>791ああ、不快なだめおとこ
0793デフォルトの名無しさん2014/06/17(火) 18:18:49.50ID:4vzpbEIx
久しぶりに来たら変なのが湧いててワロタ
0794デフォルトの名無しさん2014/06/17(火) 18:37:05.89ID:th53rZYK
おまえらは湯浅ってゴミカスのことどう思ってんだ?
0795デフォルトの名無しさん2014/06/17(火) 20:52:30.13ID:2BmltRy+
2ちゃんから人が減ったけど、まだ戻ってくることあるんだなw
0796デフォルトの名無しさん2014/06/17(火) 20:55:07.02ID:qY/tpct3
未踏ってGaucheとかmrubyのイメージしかないけど
その湯浅って人は具体的に何やらかしたん?
0797デフォルトの名無しさん2014/06/17(火) 21:00:56.93ID:th53rZYK
PMでかつスーパークリエーターは彼一人
0798デフォルトの名無しさん2014/06/17(火) 21:37:12.07ID:Pi57gBNm
>>779
精神病ではなくて、中国人。
0799デフォルトの名無しさん2014/06/18(水) 01:31:42.82ID:O5tsUQT8
天才といえば苫米地さんだろ?なんでお前らわかんないの?
0800デフォルトの名無しさん2014/06/18(水) 06:06:13.10ID:ACkogk4w
>>796
ゼロからの実装としては世界初となるCommon Lispである
Kyoto Common LisPの主たる実装者の一人だろ
特徴はコンパイルするとC言語ソースを吐き出すこと
ANSI以前のもので、今はANSI Common Lispのサブセットという位置付けか
0801デフォルトの名無しさん2014/06/18(水) 11:32:17.21ID:7tSp0AS9
KCL, wnn, gmw 当時の京大は輝いてた。
0802デフォルトの名無しさん2014/06/18(水) 11:49:28.98ID:ZMMbatdC
KCLはGCL(GNU Common Lisp)になってからANSIフル実装してる。
0803デフォルトの名無しさん2014/06/18(水) 19:20:00.50ID:ACkogk4w
としとると、おばかになるんだな
カミソリと言われた俺もコアラのようになった感じがする
ていうか息するエキスパートシステムと化していくようだ
0804デフォルトの名無しさん2014/06/18(水) 19:45:58.32ID:SdsFVxQM
gclってまだcltl1の範囲じゃなかったっけ
ManKaiとかembeddedとかkclからの派生色々あるけどどう違うんだろ
0805デフォルトの名無しさん2014/06/19(木) 10:02:01.85ID:EHpEAUer
このスレと関係ないけれど
最後にgoto文使ったのはいつだろう
まだチンたんもそそり立ち
「エイトまーん! いや、エイトビットオ、すごいだろ?」
なんて言ってた頃か
0806デフォルトの名無しさん2014/06/19(木) 10:43:50.85ID:EXEtiHUa
VM書いたことないんだな。
タイトループでgoto使うのはチューンナップの常套手段。
0807デフォルトの名無しさん2014/06/19(木) 11:05:02.58ID:EHpEAUer
俺は立場上、gotoなんか使わん!
正義の構造化戦士である
戦死したけどな、わはは
0808デフォルトの名無しさん2014/06/19(木) 11:17:29.45ID:1pN34o/W
>>804
途中で挫折したからどこまで実装したかも定かで無いはず。
0809デフォルトの名無しさん2014/06/20(金) 07:45:01.91ID:42Cjh3o9
>>806
> タイトループでgoto使うのはチューンナップの常套手段。

化石みたいなローカル常識わろた
0810デフォルトの名無しさん2014/06/20(金) 11:48:33.89ID:UkLSHGsY
インタプリタの実装だろ。
化石じゃなくて普通に現役の話だし、Labels as Valuesを使ったりとか、
ごく定石的なテクニック。
0811デフォルトの名無しさん2014/06/20(金) 12:13:07.18ID:fiYVjyLm
VM実装に限定した話であれば、
goto文を多用するカリカリ・チューニングも必要悪だけど選択肢の一つかな

ただ自分なら、そういったコーディング・テクニックを駆使するパワーを
VM命令セットの改善やVMコード最適化にまわすけどね
0812デフォルトの名無しさん2014/06/20(金) 12:54:43.96ID:mz5Q+yv5
goto文は自動生成するもの
0813デフォルトの名無しさん2014/06/20(金) 13:43:26.58ID:SjbpHxgH
>>806
そういう思想は何とかの開き直りそのものだな
0814デフォルトの名無しさん2014/06/20(金) 14:49:24.59ID:UkLSHGsY
あ、コーディングルール絶対派(≒バカ)だ。
0815デフォルトの名無しさん2014/06/20(金) 15:36:12.43ID:LvQlcNc7
末端の乞食はそういうね
>>814 ←
0816デフォルトの名無しさん2014/06/20(金) 15:41:07.32ID:UkLSHGsY
上流という名のバカか
0817デフォルトの名無しさん2014/06/20(金) 22:19:07.37ID:cCN0lle0
>>810
アセンブラレベルでチューニングすると言うならまだしも、今時 goto でスパゲッティ作ってチューニングした気になってるとか、老害乙
反論するならちょっと具体例あげてみなよ
0818デフォルトの名無しさん2014/06/20(金) 22:57:04.86ID:UkLSHGsY
インタプリタの実装すら知らないバカ乙
0819デフォルトの名無しさん2014/06/20(金) 23:03:41.40ID:B5B+3p/J
>>817
そういうのはコンパイラのコード全部読んでから言わないと駄目だとおもうな
0820デフォルトの名無しさん2014/06/20(金) 23:04:05.63ID:Lbrov44k
gotoを集めてキミだけのインタプリタをつくろう!
0821デフォルトの名無しさん2014/06/20(金) 23:09:11.43ID:hanWzSUr
>>818
で、具体例のひとつも出せないの?

>>819
何故にコンパイラのコードなの?
生成されたコードで良いのでは?
0822デフォルトの名無しさん2014/06/20(金) 23:09:28.73ID:PmYa9Irn
ttp://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_4.html
これの値としてのラベルに書いてあることだろ

> ラベル値の別の用途として、 インタープリタの中で、 スレッド化されたコードを対象にして使うという方法があります。
> 非常に高速なディスパッチ処理を実現するために、 インタープリタ関数内のラベルの値をスレッド化されたコードの中に持たせることができます。
0823デフォルトの名無しさん2014/06/20(金) 23:20:05.90ID:UkLSHGsY
Labels as Valuesって、ググるためのキーワードは出てるにもかかわらずコレじゃあ、
成長の見込みは全く無さそうだがね。
0824デフォルトの名無しさん2014/06/20(金) 23:44:22.66ID:PmYa9Irn
具体例出した途端黙りかよ
0825デフォルトの名無しさん2014/06/21(土) 00:01:19.56ID:KMvjaKi+
>>822-824
switch より速くなる例書いてみなよ

そもそも、そのページいつ作られたのか知ってるか? w
0826デフォルトの名無しさん2014/06/21(土) 00:17:12.60ID:6UOd6cQG
専門板のやつらを煽って有益な情報を出させるやつか
0827デフォルトの名無しさん2014/06/21(土) 01:09:51.25ID:KMvjaKi+
どうせ出てこないだろ
10 年以上前のページをどや顔で出して来るようなレベルだし
まあそのページはスゲー懐かしかったわ w
0828デフォルトの名無しさん2014/06/21(土) 05:06:33.98ID:cqXDE/G2
lispのgotoの話をしているのかと思いきやCのgotoの話をしているお前ら
いい加減スレ違いと気づけ
0829デフォルトの名無しさん2014/06/21(土) 06:41:53.58ID:zwd/ab8y
> switch より速くなる例書いてみなよ
まずはてめーがその偉そうな口を叩けるだけの証拠を示せよタコ。

Schemeにしても何にしても、インタプリタコア部分の実装方法が10年やそこらで
そんなに変わるもんかw

どや顔で「古い」としか威張れないバカのレベルなんざ知れたもんだ。
0830デフォルトの名無しさん2014/06/21(土) 09:29:05.61ID:KMvjaKi+
>>829
はあ?

> タイトループでgoto使うのはチューンナップの常套手段。

って書いた奴が実例示すのが筋だろ。
出せねーなら、おとなしく ROM っとけ。
0831デフォルトの名無しさん2014/06/21(土) 11:40:35.25ID:Ljd65t/a
gotoラベルを配列に突っ込むとかgcc拡張なら割と良く見る>>バイトコードインタプリタ
でもそんなんだったらディスパッチ部分を素直にアセンブラで組めと思わんでも無い
0832はちみつ餃子 ◆8X2XSCHEME 2014/06/21(土) 13:14:23.01ID:P7AT9cRE
gcc くらいに高度なコンパイラになるとどんな風に最適化したコードを吐くか予測するのが難しくて、
癖をよく知ってないとチューンナップのつもりが逆効果ってこともあるし、
かといって最適化をオフにすると他の箇所全部が遅くなるわけなんで、俺も >>831 に一票。
0833デフォルトの名無しさん2014/06/21(土) 17:52:36.30ID:kQL+4agv
実例としては CLISP とか Gauche とか YARV(ruby) とかがあるね。
labels as values と switch を切り替えられるようになってる。

Cコンパイラは switch でのディスパッチを最適化しきれない。
switch(*ip) { ... } を実行したとき、
*ip に 対応する case ラベルがなかったら、
何もしないで switch 文の外に出なければならないという仕様があるから。
*ip が範囲内かチェックするためのコードが必要になる。
0834はちみつ餃子 ◆8X2XSCHEME 2014/06/22(日) 15:02:53.33ID:yWc4gHlx
俺のトリップを含むトリップ各種が洩れてた…。
http://www.peeep.us/2a048687
0835デフォルトの名無しさん2014/06/22(日) 15:36:28.49ID:GfVVI894
なにをいまさら
0836o%K%H:+O2014/06/22(日) 17:04:00.74ID:ssCGlzx+
>>834
昨年の8月ぐらいからの話
0837デフォルトの名無しさん2014/06/22(日) 17:13:55.66ID:EJpLg/2L
本人はとっくに知っていて>>834は本人ではない可能性が・・・?
0838デフォルトの名無しさん2014/06/22(日) 17:20:46.27ID:JPJLFEsY
・元々はみちつ餃子は二人いた
・若年性アルツハイマー
・片方がなりすまし
0839はちみつ餃子 ◆8X2XSCHEME 2014/06/22(日) 17:26:17.57ID:yWc4gHlx
実際になりすましがあったから洩れてるのは知ってたけどネット上でこうも堂々と見れる状態だとは思ってなかった。
っていうか、おまえら知っててなりすましが有ったのが一度だけっていうところに優しさを感じる。
0840デフォルトの名無しさん2014/06/22(日) 23:17:30.53ID:sY6SZ6hh
S式のようにC風構文木でかけるLllong
https://bitbucket.org/h_sakurai/lllong/downloads/lllong.pdflllong.pdflllong.pdf

最近は、llvm使った実装増えてるよね。
システム系だと、Swift以外にもClayとかあった。

強力なパターンマッチがあり、次のバージョンで型推論を取り入れるS式でかける言語Egison
http://www.slideshare.net/rakutentech/the-egison-programming-language-33108928
これってQiやShenよりパターンマッチや型推論の表現力高いのかな?

型推論取り入れるなら、実行時のリフレクションやboxing取り除くようにして高速化してほしい。
ひとりで開発してるのに、どんどん高速化していったluajitみたいなのもあるけど、普通そこまで手が回らないよね。
0841デフォルトの名無しさん2014/06/23(月) 00:51:58.32ID:sN8Q1H3I
unboxingはかなりめんどくさい。
0842デフォルトの名無しさん2014/06/24(火) 01:16:27.47ID:oT03fc5s
C言語でlisp処理系の実装で文字列ストリームをtmpファイルを使って実現するのってまずい?
/tmp/hogehogeみたいな場所に置けば楽に出来そうだと思ったんだけど
0843デフォルトの名無しさん2014/06/24(火) 01:54:26.46ID:BELul5eB
なんでファイル生成なんて重くて時間のかかる処理を効率的であるべき箇所に盛り込もうとするかな
0844デフォルトの名無しさん2014/06/24(火) 01:54:46.50ID:owlQj1Y7
なんでマズいかもと思うの?
0845はちみつ餃子 ◆8X2XSCHEME 2014/06/24(火) 02:39:04.86ID:a+S1HEt3
文字列の処理は頻出するので性能面では著しく不利になるのは確か。 桁が違う。
実装した処理系を文字列処理にはあまり使わないと割り切ることが出来るなら手っ取り早い実装方法として選ぶのも有りと言えば有りかな。
ただ、そもそもの話として本当に一時ファイルを使う方が実装が簡単とは限らないよ。
OS やらランタイムライブラリのおかげでファイル操作に関しては普段は高レベル API を使えるけど、
立ち入ったことをしようと思うとなかなか大変なこともあったりするよ。
0846デフォルトの名無しさん2014/06/24(火) 17:02:30.76ID:jjJVFw7G
うーんreadやprintでFILEをそのまま使う書き方をしてて
そこを書き換えずに出来ると思ったんだけど遅くなるし駄目か
0847はちみつ餃子 ◆8X2XSCHEME 2014/06/24(火) 19:51:33.28ID:a+S1HEt3
CRT の I/O バッファリングはあまり性能がよくなかったり、
細かい制御が出来なかったりするので、
独自にバッファリング処理をやってる処理系はあるね。
そのバッファリング処理部分に統合する形で文字列ポートを実装するのが妥当だと思う。
用途による選択の余地はあるものの、これが一番普通の選択だと思う。


なるべく CRT に委ねるというポリシーなら、
メモリをファイルのように見せる機能が OS にあったりするので、
そういうのを使うことも出来る。
fmemopen とか。
環境依存になっちゃうけど。


繰返しになるけど、遅いことを許容するというのも方法のひとつだよ。
0848デフォルトの名無しさん2014/06/24(火) 21:42:20.70ID:jjJVFw7G
> 独自にバッファリング処理をやってる処理系はあるね。
> そのバッファリング処理部分に統合する形で文字列ポートを実装するのが妥当だと思う。
> 用途による選択の余地はあるものの、これが一番普通の選択だと思う。
これ良さそうだけど色々と面倒な事をしないといけない気がして億劫

fmemopenが良い感じに手を抜けそうだからこれにしようかな
0849デフォルトの名無しさん2014/06/24(火) 23:11:23.60ID:IRE6j+YL
手を抜きたいならLispで書くのが一番だが。
リストと固定長文字列あれば可変長キューは簡単に実装出来るでしょ。
0850デフォルトの名無しさん2014/06/27(金) 10:42:38.13ID:LpHIOZTv
親切な方教えて
あるシンボルが関数シンボルかどうかを調べる方法はありませんでしょうか?

仮にそういう関数を(func? x)とすると
(deifne ++ (lambda (n) (+ n 1)))
としてあるとき

(func? '++) ->#t
(func? '+ ) -> #t
(func? 'no-such-function) ->#f
となるような関数があると便利なんですが
0851デフォルトの名無しさん2014/06/27(金) 11:08:16.46ID:iQ4reeO8
procedure: (procedure? obj)
returns: #t if obj is a procedure, #f otherwise
libraries: (rnrs base), (rnrs)

(procedure? car) → #t
(procedure? 'car) → #f
(procedure? (lambda (x) x)) → #t
(procedure? '(lambda (x) x)) → #f
(call/cc procedure?) → #t
http://www.scheme.com/tspl4/objects.html#./objects:h2
0852デフォルトの名無しさん2014/06/27(金) 13:14:21.84ID:1+Sp/Gzh
>>851
ありがとう
勉強します
0853デフォルトの名無しさん2014/06/30(月) 18:43:43.06ID:5Vn4Dhv3
無知ですいませんが、
The little Schemer の p95

When functions are correct and
well-designed,, we can think about them
easily

と その横の

And that saved us this time from getting it wrong.

の訳をお願いします
0854デフォルトの名無しさん2014/06/30(月) 20:28:06.61ID:wZwybvKf
本文の文脈は参照してない。

関数が正しく良い設計ならば理解することはたやすい。
そして今回のような場合には悪くしてしまうことも防いでくれる。
0855デフォルトの名無しさん2014/06/30(月) 20:46:34.27ID:by3cNm9P
>>853

When functions are correct and
well-designed,, we can think about them
easily

関数がきちんと動くだけでなくてな、加えて良くデザインされてるとな、定義を読んで理解しやすいものや


And that saved us this time from getting it wrong.
ほんでなあ、するとや、よいデザインで読みやすいいうもんは、関数の定義、機能を誤解しにくくしてくれるんやで
どや!えらいもんやろ。チンチンいじりなごらでええから
よおくかみしめるんやで
0856デフォルトの名無しさん2014/06/30(月) 20:50:24.66ID:uMTdbn6C
広島弁でお願いします><
0857デフォルトの名無しさん2014/06/30(月) 20:58:01.10ID:EFKBauf6
>>856
関数がちゃんと動くだけじゃのぉてね、ええデザインしてあったら定義を読んで理解しやすいよねぇ?
じゃけぇね、チンチンいじりなごらでええからいじりなごらでええけえよぉ考えんさい

で、どない?
0858デフォルトの名無しさん2014/06/30(月) 21:00:43.40ID:uMTdbn6C
>>857
ありがとうございます><
0859デフォルトの名無しさん2014/06/30(月) 23:35:46.72ID:5Vn4Dhv3
>>854
>>855
ありがとうございます
すっきりしました
そして見返した後こんな翻訳もできない自分に嘆きました
0860デフォルトの名無しさん2014/07/01(火) 10:16:22.99ID:2qZFGtO8
The Little Schemer では procedure ではなく function になってるのは歴史的経緯?
0861デフォルトの名無しさん2014/07/01(火) 11:07:13.30ID:tCdQNvHm
The Little Schemerの範囲なら関数と呼んでも特に問題ないでしょ。
いつも専門用語的な狭い範囲の用法として理解しない方がいい。
専門家が他国語を理解する時に陥りがちな誤りの一つ。
0862デフォルトの名無しさん2014/07/01(火) 12:14:45.10ID:29jmPgpF
もともとのThe Little Lisperでfunctionと表記してたのが
改訂版のThe Little Schemerにそのまま引き継がれたんだろう
前者と後者では言語も違うが章の構成も違う
0863デフォルトの名無しさん2014/07/01(火) 19:20:41.62ID:mAs7CsRJ
というかなぜSchemeは「function」しなかったのだろうか
0864デフォルトの名無しさん2014/07/01(火) 19:51:35.85ID:mAs7CsRJ
「function」
↓
「function」と
0865デフォルトの名無しさん2014/07/01(火) 20:33:26.18ID:lJh4uqZb
SteeleとSussmanはSchemeはpure functionalじゃないことを意識してた。
だから"Lambda: The Ultimate Imperative"なんて論文があるわけ。
0866デフォルトの名無しさん2014/07/02(水) 00:04:14.82ID:tskje/aN
>>865
なるほどなありがとう
0867デフォルトの名無しさん2014/07/07(月) 05:30:43.53ID:Aa65Kzdk
The Little Schemer の9章からもうわけわかめ
なにがどういうことだ
0868デフォルトの名無しさん2014/07/07(月) 10:44:27.44ID:6jHTZgwa
9章では「継続」を扱っている
テキストでつまづいたら
環境とかクロジャーとかを勉強してから戻るといいかも
0869デフォルトの名無しさん2014/07/08(火) 13:59:01.83ID:a1kWYHEe
文字列をシンボルのリストにする方法、あるいは文字をシンボルにする方法を教えてください
0870デフォルトの名無しさん2014/07/08(火) 14:38:21.78ID:tVqE3TJ/
>>869
;;; Schemiの場合
(let (
;;文字列をシンボルに
(a (string->symbol "hello"))
;;文字をシンボルに
(b (string->symbol (make-string 1 #\h))))

;;評価の表示
(format
#t "\nIs ~s a symbol? ~s\nIs ~s a symbol? ~s\n"
a (symbol? a) b (symbol? b)))

Is hello a symbol? #t
Is h a symbol? #t
0871デフォルトの名無しさん2014/07/08(火) 17:43:31.75ID:S7U1xSIY
>869
文字列からシンボルのリストってどゆこと?
0872デフォルトの名無しさん2014/07/08(火) 17:51:48.68ID:yHecLF2P
onlispにそのまんまのコードが書いてある

(defun explode (sym)
(map 'list #'(lambda (c)
(intern (make-string 1
:initial-element c)))
(symbol-name sym)))
0873デフォルトの名無しさん2014/07/08(火) 18:54:16.36ID:cYjPRTX9
;;文字列をシンボルのリストに
;;;while版
(define (string->charlist str)
(let ((tmp (string->list str))
(res '()))
(while (not (null? tmp))
(set! res (cons (string->symbol
(make-string 1 (car tmp)))
res))
(set! tmp (cdr tmp)))
(reverse! res)))

;;;再帰版
(define (string->charlist* str)
(letrec
((aux
(lambda (ls)
(cond
((null? ls) '())
(else
(cons (string->symbol
(make-string 1 (car ls)))
(aux (cdr ls))))))))
(aux (string->list str))))

(string->charlist "hello")
(h e l l o)
(string->charlist* "hello")
(h e l l o)
0874デフォルトの名無しさん2014/07/08(火) 21:17:13.05ID:EztOR/qg
(define (string->symbols x)
(map string->symbol
(map (lambda (x) (list->string (list x)))
(string->list x))))

(define (char->symbol x)
(string->symbol
(list->string (list x))))
0875デフォルトの名無しさん2014/07/08(火) 23:43:49.49ID:6BFgvYzx
>>874を読んで質問の意味がわかったw
0876デフォルトの名無しさん2014/07/09(水) 00:07:52.04ID:pI9bDyIl
ターミナルで動かすGNU/Clispについて質問があります。
二行に渡るコードを書くときに、改行がCTR+ENTERでできることは知っているのですが、インデントや、行をまたがったカーソルの移動はどうすれば良いのでしょうか?
バックキーを入力したのでは、その行しか消せません。
矢印キーも同様です。ググっても乗っていませんでした。
よろしくおねがいします。
0877デフォルトの名無しさん2014/07/09(水) 01:18:15.86ID:7kGfnEUA
質問ですが
CommonLisp系統のLisp-2(名前空間が関数と変数で別)である理由は何ですか
0878デフォルトの名無しさん2014/07/09(水) 01:20:19.24ID:/8/fqD8z
>>877
そっちの方がいいと思ったからだよ
0879デフォルトの名無しさん2014/07/09(水) 01:25:02.28ID:7kGfnEUA
>>878
聞きたいのはその理由ですよ
0880デフォルトの名無しさん2014/07/09(水) 10:17:01.51ID:ybj7t72x
LispがLisp-1的世界を切り開いてきた。
それまではなかった。
多分ドメインを別にする習慣のあった数学の影響と
初期の機械語プログラミングの困難さから。
Turingマシン、ノイマン型、Lispという計算機科学の系譜が
計算機工学の中では、ほそぼそとしたLisp-1的流れだった。

最初からLisp-1でよかったじゃんと思う人がいるのは、
それだけ世の中にfunctional programmingが普及してきたという事。
ただ歴史的には、Lispが開発された頃、
Lisp-1的言語は普通じゃなかった。
0881デフォルトの名無しさん2014/07/09(水) 14:08:21.19ID:2vgwjaN4
といったような怪しげな知ったか説とかは読まずに、
まずは Technical Issues of Separation in Function Cells and Value Cells
ttp://www.nhplace.com/kent/Papers/Technical-Issues.html を
読むことだな。
0882デフォルトの名無しさん2014/07/11(金) 01:24:30.06ID:3pyQUcUp
Yコンビネータ全くわからんぞ
だれか教えてくりー泣
0883はちみつ餃子 ◆8X2XSCHEME 2014/07/11(金) 10:08:23.03ID:Upi0fow3
その気持はよくわかるけど、教えてもらってわかるというたぐいのものでもないような。
結局は定義をしつこく読むくらいしかないよ。
0884デフォルトの名無しさん2014/07/11(金) 11:46:59.41ID:VezMxowA
いくつか方法がある。

(1) 実装として。S・Kコンビネータ計算を実行する処理系を書いてみれば、
 そのようなコンビネータの一種としてYもSやKと同様に作れる。
(2) 意味論から。再帰的関数を再帰の代わりに不動点として定義するのに
 使われる不動点コンビネータがYである、という所から。

あまりこだわらず、周辺をいろいろ攻めているうちにわかってくると思う。
0885デフォルトの名無しさん2014/07/11(金) 22:51:34.12ID:Z7eZP0Q+
Yは一旦諦めてZをそれらしく実装してみるところから始めてみるのも手かな
0886デフォルトの名無しさん2014/07/12(土) 00:00:53.38ID:mfnHcGNO
Yコンビネータは同じく全く理解できなかったけど、「On Lisp」後注の半ページほどの説明を読んだら、すっと理解できた
(意味論とか難しいことを言われると本当に理解できているのか怪しいが…)

しかし、Webの草稿置き場のものには残念ながら後注は無いようだ
0887デフォルトの名無しさん2014/07/12(土) 02:21:31.47ID:cPaFHRXY
世界の料理ショーを見てわかった(嘘
0888デフォルトの名無しさん2014/07/12(土) 05:25:06.81ID:I/natbqe
うーむ
そろそろThe Little Schemerの
8. Lambda the Ultimateに入る俺としては緊張するな継続にYコンビネーターか。
なんのことやら知らんけど
今までのところは楽しくやってきたが
なんか難しめのことらしいな
そんなの初級でやるのか、リトルスキーマー君
0889デフォルトの名無しさん2014/07/12(土) 21:28:02.87ID:82KGraai
ラムダ計算の世界で再帰ができるってだけの話じゃないの?
数学的には無数にある不動点コンビネータの一つであるとかなんとかいろいろあるだろうけど
0890デフォルトの名無しさん2014/07/13(日) 00:41:18.15ID:DviLtq/a
>>889 に一票。
手動で展開していって確かに再帰になることを確認したらそれでいいと思うよ。
0891デフォルトの名無しさん2014/07/13(日) 02:15:27.09ID:tCxzigJl
なんでSchemeにはloopマクロがないの?
racketのforとかsrfi-42とか名前変えてるのは
何故?
0892デフォルトの名無しさん2014/07/13(日) 16:51:40.40ID:vSn+Bfku
なければ作ろう!
0893デフォルトの名無しさん2014/07/13(日) 17:18:41.81ID:6sD1pyHJ
俺はnilがいいなあ
Common Lispに戻ろうかなあ 
0894デフォルトの名無しさん2014/07/13(日) 18:49:14.08ID:DviLtq/a
loopマクロみたいな巨大なものが srfi 的なやり方で合意が取れるとは思えないんだよなぁ…。
0895デフォルトの名無しさん2014/07/14(月) 14:05:15.38ID:IJfuG6Dx
ffiというとC言語しかみないのですが
Javaと連携できるのがkawaとか一部しかないのって
何か理由があるのでしょうか
0896デフォルトの名無しさん2014/07/14(月) 21:14:37.30ID:kj3eN9zy
いいモノは人には教えないという人間の性が理由
0897デフォルトの名無しさん2014/07/14(月) 22:18:45.12ID:ZbaucCCO
>>895
kawa が Java と連携できるのは、Scala や JRuby 等と同様に
Java VM 上で動く Scheme 実装だからというのが理由

それに当てはまらない(Java VM 以外の手段で実装された)処理系の場合は、
JNI を介して連携することになるけど、「苦労の割に得る利益が少ない」から普及しない
たとえば過去には Apple が Java-Cocoa(ObjC) 連携を試みたけど、
ずいぶんと前に廃止した(かろうじて WebObjects が残っている?)

まとめると Java の膨大なライブラリ/フレームワークは魅力的だけど、
それを活用したいなら(kawa のような)JVM前提の処理系へ魂を売り渡しなさい、ってこと
0898デフォルトの名無しさん2014/07/14(月) 23:42:12.30ID:KE4932Hs
それもユーザ数が多ければ手間をものともせずにやっちゃうような酔狂な人が現れたりもするんだけど、
マンパワー不足はマイナー言語の性というもの
0899デフォルトの名無しさん2014/07/15(火) 04:49:20.51ID:f8ICcK+4
Schemeに拘らないならABCLとかClojureってのもあるぞ>>895
0900デフォルトの名無しさん2014/07/16(水) 12:29:19.97ID:+D4/arqt
>>899
だよね。
これ以上何が必要なのか分からん。
0901デフォルトの名無しさん2014/07/16(水) 12:30:22.22ID:+D4/arqt
>>898
pythonだって別実装は大した数じゃないよ。
0902デフォルトの名無しさん2014/07/16(水) 21:26:35.12ID:KbQ0+KaX
>>900
末尾再帰最適化
0903デフォルトの名無しさん2014/07/16(水) 23:51:45.48ID:OHagA9er
IBMのJVMは末尾呼出し最適化してくれるらしいけど、対応してる実装ってあるのかな。
ちなみにclojureのバイトコードは、最適化される形にはならなかった。
http://www.ibm.com/developerworks/jp/java/library/j-diag8/
0904デフォルトの名無しさん2014/07/17(木) 02:31:22.30ID:bbQBQF/e
tail callはまだ仕様になってない。
byte code verifierの仕様が変わるから深刻。
0905デフォルトの名無しさん2014/07/20(日) 16:40:51.25ID:e2sBTcWE
the little schemer 読むのにどれぐらいかかるorかかった?
0906デフォルトの名無しさん2014/07/20(日) 17:09:59.35ID:g2r5PvYM
四ヶ月かかった
はじめ邦訳で六章くらいやって英訳でやり直し
英語の感覚鈍ってたから英語の勉強かねて
(基本的に英語の表現のほうが日本語より、その構文の差によってわかり易かった。概要から詳細へと記述されるから)
途中、お題スレの問題解いたり
そこから発展させて欲しいツール作ったりしながらどけど
Lambda the ultimaueは途中から
何のためになにやってんのか?
わからなくなり自己研究やったり
継続がピンとこないでネットで勉強したりしてたので
まさかの四ヶ月かかった
なお、おれはプログラミング初心者
0907デフォルトの名無しさん2014/07/20(日) 17:41:06.88ID:Hkqf8/Zf
エンジニアだが一ヶ月かかった
ずっとこればっかり読んでたわけじゃないが
0908デフォルトの名無しさん2014/07/20(日) 18:19:12.17ID:CFd9T/pR
高1の時に二週間程度
0909デフォルトの名無しさん2014/07/20(日) 19:31:13.83ID:e2sBTcWE
>>908
はええ頭いいな
0910デフォルトの名無しさん2014/07/20(日) 19:46:51.19ID:CFd9T/pR
>>909
と思うだろ
しかし底辺高校で中退なんだぜ
絶賛引きこもりニート中
0911デフォルトの名無しさん2014/07/20(日) 22:04:37.51ID:XJ4Jnk+D
今日日、little schemerなんて意味あるの?underscore.jsでも読んだ方がマシ
一世代前なら中卒のRubyコミッタが世間で騒がれてたけど、Railsの奇跡はもう起こらない
0912デフォルトの名無しさん2014/07/20(日) 22:49:44.76ID:jISfG/Sm
?
0913デフォルトの名無しさん2014/07/21(月) 18:41:18.07ID:qgFzF04t
コンディションが出る原因が分からなくて数時間くらいデバッガの使いかたをググりながら
やっと見つけたのがdolistとdotimesの書き間違いだと気付いた
エラー箇所だけさらっと出してくれないかなあ
0914デフォルトの名無しさん2014/07/21(月) 22:08:58.79ID:0D98hGh7
あ、Gaucheの新しいの来てた
0915 ◆QZaw55cn4c 2014/07/22(火) 10:21:47.23ID:sOmkkygz
moshって死んだの?
0916デフォルトの名無しさん2014/07/22(火) 13:01:58.22ID:q6mJDxlU
>>914
きたね
作者さん乙
0917デフォルトの名無しさん2014/07/23(水) 22:35:11.18ID:cG8Of2p8
>Java の膨大なライブラリ/フレームワーク
というけど実際には使ってる人が誰もいないのではという様な
名前ばかりのライブラリが沢山あるだけ
例えばグラフ描画できても細かい軸やlegendの調節できなかったり
gnuplotで頻繁に使われてる機能がない
本当に使ってる人いるなら絶対に誰かが機能追加するはずなんだけど
ないって事は誰も使ってないってこと

BoostのあるC++より遥かに劣る
0918デフォルトの名無しさん2014/07/23(水) 23:37:40.40ID:fK9nVKYR
本当に頻繁に使うなら、そもそもgnuplot使うし
0919デフォルトの名無しさん2014/07/23(水) 23:43:05.41ID:YWYt1CpT
lispもライブラリ無いってよくいわれるけど
quicklispあるし結構あると思う
0920デフォルトの名無しさん2014/07/23(水) 23:49:44.28ID:fK9nVKYR
lispはライブラリがたんさくありすぎる
0921デフォルトの名無しさん2014/07/23(水) 23:58:45.87ID:cG8Of2p8
Javaはmakefile使えなくなるような仕組みあるから
gnuplotがpythonみたいに簡単に使えないけどね
0922デフォルトの名無しさん2014/07/24(木) 00:35:02.60ID:d0xxv3SP
>>917
R(r-lang.org)のJVM実装を埋め込む人が多いんじゃないかな。
gnuplotのJava bindingは使ったことない。
0923デフォルトの名無しさん2014/07/24(木) 01:03:35.29ID:Ed1ZbGyy
Lispはゴミみたいなライブラリが山ほどある
0924デフォルトの名無しさん2014/07/24(木) 02:43:54.08ID:2gT2PDSV
smalltalkとか13万以上の豊富なライブラリが自慢らしいけど果たして
0925デフォルトの名無しさん2014/07/24(木) 22:20:57.84ID:g2fb8D+B
どんなライブラリも山ほどたまるとゴミになる
0926デフォルトの名無しさん2014/07/24(木) 23:28:41.38ID:oNZh13hi
>Java の膨大なライブラリ/フレームワーク
この嘘に騙された奴の作ったJavaプログラムのせいで
今苦労してる

Javaの嘘はあちこちに宣伝しないと
こっちが被害を食う
0927デフォルトの名無しさん2014/07/24(木) 23:31:09.32ID:EvZzSxsR
でもswingは羨しい
0928デフォルトの名無しさん2014/07/25(金) 00:04:00.14ID:8zbLFuHQ
>>926
単なる仕事の愚痴は板違い
0929デフォルトの名無しさん2014/07/25(金) 00:10:07.95ID:IfD0KbUG
>>927
商用でswing使った製品(測定器のドライバ)は1回しか見たことがないけど、本当に使われてるのかな…
0930デフォルトの名無しさん2014/07/26(土) 00:36:24.02ID:THZcG20M
開発が活発なscalaコミュニティの話。scalaは細かいバージョンアップが頻繁にあるけど、ついていけないライブラリもあり、
ライブラリ開発者がバージョンアップしたくても、依存してるライブラリ外すしかなくなる話は、よく聞く。
ユニットテスト自身が依存してとか。
0931デフォルトの名無しさん2014/07/27(日) 19:24:07.97ID:X90Y7FPu
eclipse の軽量GUIコンポーネントを CLで使いたい
0932デフォルトの名無しさん2014/07/31(木) 01:03:26.56ID:qyzvUDBY
The Litlle SchemerよんだらScheme使えるようになる?
0933デフォルトの名無しさん2014/07/31(木) 04:48:14.89ID:A9AbgrBT
初めの一冊としては勧めない
理由1
(コンス)セルの概念なしでやる
理由2
「継続」などの初級とは言えない概念を扱う

The Little Schemerやるなら。
8. Lambda the ultimate
でつまづいたら、8.の前半までを初級とみなしてそれ以後は後でやるでもいいと思う

初めは書籍でいえば
 リスト遊び
emacs Lisp
   これはlambda式を扱わないが

初めての人のためのLisp
Common Lisp
演習問題月
がいいんじゃないか



 
 
0934デフォルトの名無しさん2014/07/31(木) 10:43:33.10ID:2xqyMK/e
プログラミングGaucheの改訂版出ないかな
0935デフォルトの名無しさん2014/07/31(木) 11:01:08.79ID:TyXWzrY4
後半のWebサーバーの話がWindowsに対応してから出してください
0936デフォルトの名無しさん2014/07/31(木) 15:03:13.99ID:h7HAyz5T
kahua ほど柔軟なフレームワークではないけど、アマチュアが遊ぶくらいの用途なら makiki で充分だと思う。
makiki は Windows でも動くし。
0937デフォルトの名無しさん2014/07/31(木) 16:54:34.83ID:ZI3BLt96
>>935
VMWareでLinuxでもつっこめばOKじゃねぇの?
0938デフォルトの名無しさん2014/08/01(金) 10:33:47.73ID:4dS22gbu
xml -> sxml
と同じ感じでpythonやCなどのプログラムも
Lispで処理しやすいS式に変換する方法ないのでしょうか
0939デフォルトの名無しさん2014/08/01(金) 15:50:14.63ID:iux/FBYR
可能と言えば可能。
Gauche の拡張パッケージで c-wrapper ってのあるけど、ヘッダファイルをパースしてリストにしたりするし。
ただ、それが「処理しやすい」かどうかってちょっと微妙だと思う。
どういう風に使いたい?
0940デフォルトの名無しさん2014/08/01(金) 16:15:31.49ID:zwQZcLB5
そういやSC言語とかいまどうしてんのかと思ったら

http://super.para.media.kyoto-u.ac.jp/tascell/index.html

並列処理言語?
0941デフォルトの名無しさん2014/08/01(金) 23:10:24.52ID:IcnvQZSR
pythonはpypyでASTが定義されてparserもあるから、
その辺使えば変換コードは機械的に生成できるでしょ。
0942デフォルトの名無しさん2014/08/01(金) 23:12:02.02ID:IcnvQZSR
Cはプリプロセッサの扱いが大変で、
ソースをそのまま扱おうとすると、
コンパイラが内部的に使ってるASTには収まりきらない。
0943デフォルトの名無しさん2014/08/02(土) 00:43:07.43ID:UBZX0AEK
>>938
Ruby なら標準ライブラリで Ruby ソースをS式に変換できる
・Ruby 2.1.0 リファレンスマニュアル
 http://docs.ruby-lang.org/ja/2.1.0/method/Ripper/s/sexp.html

この sexp というライブラリは、元々はどこかの外人さんが作ったものが
標準ライブラリの一部として採用された経緯がある

sexp の使い方については、たとえば以下が入門記事になる("ruby sexp" でググろう)
・Ruby Best Practices- Sexp for Rubyists
 http://blog.rubybestpractices.com/posts/judofyr/sexp-for-rubyists.html
0944デフォルトの名無しさん2014/08/02(土) 15:04:10.37ID:MA8vjNKC
antlrに、いろんな言語のテンプレートがあるから
あれでS式を生成すればいいのだろうけど
逆にS式から元のプログラムに戻すのは自分でプログラム組むしかないのか
0945デフォルトの名無しさん2014/08/03(日) 01:01:12.34ID:AXI+7d6r
無ければ書くしか仕方ない。
それに「S式にする」と言っても元のコードの情報をどういうS式にマッピングするかっていう情報は与えなきゃならないから、
そこんところ割と面倒くさいかも。
0946デフォルトの名無しさん2014/08/03(日) 13:21:34.29ID:adw16vV0
無名関数lambda式では再帰が出来んのか、
再帰のためのエントリーポイントをどう指定し得るのか?
とかんがえていたらThe Little Lisperで再帰的定義にdefineで名前をつけなくてもええんやでって話が出てきた
おお!噂に名前だけは聞いていた猥褻コンビニとはこの事だってのか
名無しで再帰出来ると捗りますわ
やり逃げやで!
突っ込み得やで!
0947デフォルトの名無しさん2014/08/03(日) 14:02:19.02ID:XCZJfuBH
>>882 の人なのかな?
まずは壁を一つ乗り越えたってことで、おめでとん
0948デフォルトの名無しさん2014/08/03(日) 16:39:15.72ID:OSqnAgy/
>>947
別人だよーでもなんとか折れもクリアしたぜ
0949デフォルトの名無しさん2014/08/05(火) 12:27:20.17ID:bhAhXJaO
日々退行する俺様
うん十年ぶりに昔途中でやめてしまったLispをやろうと
「リスト遊び」から始めたのはいいが、
「SICPとか英語だなあ、よし、英語も再開」
「うーむ。不動点コンビネータか。なるほど、でもここは関数もやりなおすか」
うーむ、なんか高校数学からやり直しになりつつある。
ま、暇を持て余すことがないので良いのだが
0950デフォルトの名無しさん2014/08/05(火) 17:36:13.62ID:froZ8FFZ
そういうのも yak shaving っていうのかしらね
0951デフォルトの名無しさん2014/08/06(水) 04:50:51.00ID:XNdPLNjb
才能には向き不向きがあるな
俺はプログラミングにはあまり向いてないかもなあ
lambdaで再帰したいができないんだなあ。それじゃlambdaの威力半減じゃないかと思っていた。
自分で不動点コンビネータ(Yコンビネータ)の考え方を作り出せなかった。
某方面では、出会った概念で「考えつきもしなかった」なんてのには出会ったことないんだがな。
向き不向きだな
でも、歩んでみるぞLisperへの道
0952デフォルトの名無しさん2014/08/06(水) 09:20:58.53ID:DW4EkyUR
頭の出来とかと関係なく
書いてある順番に、理解できるまで先へ行かないとか
「自分で思いつく」ことにこだわり過ぎるとかは
まあ先輩に甘えるのが下手な人なんだな
0953デフォルトの名無しさん2014/08/06(水) 11:06:56.29ID:dx6L1IdS
それな。

言語機能とか概念とかは相互に関連性があるので、
順番に身に付けていけるもんじゃない。
いったりきたりするのは普通なんだよなぁ。

それに学問的な概念はものすごい長い歴史がある。
例えば誰もが知ってるピタゴラスの定理っていつごろ発見されたか知ってるか?
少なくとも紀元前3世紀頃にはわかってたらしい。
そこから現代までのなが〜い歴史を全部自分で辿っていくのは無理だよ。
自分で思い付かなくても利用できるのが学問ってもんだろ。
理解はしなけりゃいけないけど、思い付く必要はない。
0954デフォルトの名無しさん2014/08/06(水) 11:53:38.21ID:pOyK7g81
SchemeとPythonのプログラムの間でデータやり取りする場合
xmlとjsonのどっちを使うのが便利なのだろう
0955デフォルトの名無しさん2014/08/06(水) 12:58:56.81ID:Vl89FGwE
まあ、全部はむりとして、また学系の相容れない差もあるわけだが
ある系の主たる概念は精度は別として大概作れてしまう
危機感と必要に突き動かされて
人類史に何々史があるように自分にも
「かく動機からそこへ、そこから一層の概念化のために、また、確信せられたる前提自体への懐疑の芽生えにより、また、適用不可の事態現出のため、道あらわれ、至りて今。それ亦路連綿」
があるのが本来。するとアイデアレベル、イメージレベル程度なら自分で創り出すことも多いというか、それがないなら「それに向かない」
ま、どの世界も向いてないけどやってま
という人が多いけど
俺のプログラミングもだな

ま、取りあえず無名再帰をピタッと感覚化するぞ
0956デフォルトの名無しさん2014/08/06(水) 18:47:49.66ID:CnfNnATc
>>954
PythonでS式読み書きするモジュールかなんか作っちゃうのが一番楽かと。
0957デフォルトの名無しさん2014/08/06(水) 22:17:26.75ID:e5ISbei6
というか、pythonで作ったschemeくらいあるでしょ
0958デフォルトの名無しさん2014/08/06(水) 23:42:39.87ID:h2ymQXQb
>>954
大差ない。
悩んでる暇あったら手を動かせ。
0959デフォルトの名無しさん2014/08/06(水) 23:43:48.89ID:dx6L1IdS
>>956
そうでもない。
サブセットならある程度は出来るかもしれないけど、Lispの仕様全てを満足するものを目指すとS式は面倒。
自分でパーサ/コンストラクタを書くなら JSON が楽だと思う。
Python の方には JSON ライブラリはあるだろうし、
素の R7RS でも JSON のパーサなら200〜300行くらいで書けるんじゃないのかな。
しっかりしたエラー検出とかも入れればもっと長くなるかもしれないけど。
0960デフォルトの名無しさん2014/08/07(木) 00:19:47.83ID:aoR2ZsQs
というか、pythonにlispライブラリあるでしょう
0961デフォルトの名無しさん2014/08/07(木) 22:03:24.66ID:rQ6PMWyI
>>959
いや、まぁ、御説ごもっともなんだけど、質問者は「データやり取りする」って質問してたので、
やりとりしたいデータの構造を表現できるレベルでのS式で全然問題無いもんだと勝手にエスパーしてたというわけよ。
JSONは冗長な割には表現力低いので、だったらS式ベースで俺様フォーマット定義して、それでやっちゃえば、とか思ったわけ。
0962デフォルトの名無しさん2014/08/07(木) 23:26:02.39ID:8FmsPG/e
JSONの仕様はRFCになってる。自分で書く必要はないが。
0963デフォルトの名無しさん2014/08/07(木) 23:50:17.23ID:Er6Le4/j
S式でやりとりするほうが便利な場合って、例えばどんな時?
0964デフォルトの名無しさん2014/08/07(木) 23:54:59.33ID:ULc9Q4Bx
循環構造とか shared structure とか?
0965デフォルトの名無しさん2014/08/07(木) 23:59:05.95ID:aoR2ZsQs
>>963
プログラムの自動生成をするとき
0966デフォルトの名無しさん2014/08/08(金) 01:13:05.08ID:bDabaUkn
>>963
少なくとも片方がLisp系言語の時。
0967デフォルトの名無しさん2014/08/08(金) 07:05:53.68ID:84usYtAa
S式も微妙に異なる流派があって、時々引っかかる
0968デフォルトの名無しさん2014/08/08(金) 08:27:57.52ID:19ZqYpH8
>>967
今のところClojureのリテラル表記つかったHiccupとかが一番肌にあう
0969デフォルトの名無しさん2014/08/08(金) 10:56:26.19ID:lfSHbP83
異なるのは特殊形式やマクロだけだと思うんだけど、特殊形式やマクロもS式と言うんだっけ?
0970デフォルトの名無しさん2014/08/08(金) 12:08:20.17ID:MJ5RFc2h
特殊形式とかマクロは意味の領域。S式は構文の領域。
ただしリーダーマクロは両者に跨る。
0971デフォルトの名無しさん2014/08/08(金) 23:01:43.67ID:YSSOty3P
well-formed と valid の違いで説明するとだいたいわかってくれる
0972デフォルトの名無しさん2014/08/09(土) 12:05:25.33ID:lGR2Gwif
ふうLambda the ultimate終わったで
いよいよ最終章や
適用順Yコンビネータによる無名再帰おもろかったでぇ
続編で継続と代入ってのやるらしいなあ
継続は力なりなんちって
0973デフォルトの名無しさん2014/08/10(日) 03:07:24.23ID:5x8j/lxa
今更だけどarcってmacroexpand無いの?
0974デフォルトの名無しさん2014/08/10(日) 13:46:18.55ID:IQRbIlyT
>>973
http://practical-scheme.net/wiliki/arcxref?macex
0975デフォルトの名無しさん2014/08/10(日) 13:53:56.22ID:GH83A0dN
○○ってないの? ⇒ なければ作ろう
0976デフォルトの名無しさん2014/08/10(日) 14:17:07.66ID:n4i84sWD
tutorial見てもマクロの説明はあるのに書いてなかったし
試作品みたいなものだし仕方ないと思ってたけどあったのか
0977デフォルトの名無しさん2014/08/10(日) 21:42:50.48ID:6A7KSu47
arc の実装っていくつくらいあるの?
0978デフォルトの名無しさん2014/08/10(日) 21:47:10.22ID:FMVBaSQ5
それは分からないけど今晩一つ増えると思う
0979デフォルトの名無しさん2014/08/10(日) 23:53:27.00ID:CoTA+cck
>>978
作ったの?
0980デフォルトの名無しさん2014/08/11(月) 02:40:05.48ID:WxSEm+2o
pythonに変換してevalするものを作ってる
でも一晩じゃ無理だった
0981デフォルトの名無しさん2014/08/12(火) 04:44:32.72ID:gCwb3zR6
>>978
カッコイイ言い方だね
ところでLLVM上で動くschemeってなんかある?
0982デフォルトの名無しさん2014/08/12(火) 17:56:40.66ID:KpyH9q+p
【翻訳】JPL(ジェット推進研究所)におけるLispの顛末 | POSTD
http://postd.cc/lisping-at-jpl/
面白い
0983デフォルトの名無しさん2014/08/12(火) 18:07:13.13ID:522JFzKP
警告。まで読んだ
0984デフォルトの名無しさん2014/08/12(火) 18:51:19.12ID:c+EybSyP
おもしろかった
0985デフォルトの名無しさん2014/08/12(火) 18:52:25.35ID:KAheOZts
>>982
おもろかった
0986デフォルトの名無しさん2014/08/12(火) 18:57:12.10ID:KAheOZts
おもしろかった。が、
「ワープロと宇宙船の制御システム」を対比させて
「タスクに関わらず或る言語がベストとはいえない」というくだりで
がーん・・・ Lispでアウトラインプロセッサ書くためにLisp勉強してる俺って・・
と思った
「そんなんJavaか C++で書け」と言われそうだ
むむむ・宇宙船の制御システム・・ワープロのコードなんかとは
比較にならん「高度」な世界なんだろな
俺には想像もできん
0987デフォルトの名無しさん2014/08/12(火) 21:22:10.59ID:YQE+wZnr
そこらへんさらっと読んだけど、ワープロのプログラムじゃなくて、ワープロ使うのと対比じゃなかったっけ?
違うならさらっと読んで勝手に脳内変換したかも?
0988デフォルトの名無しさん2014/08/12(火) 21:27:49.84ID:7GOO7fbF
>そして第二に、最良の事例(もしくは標準的な事例でさえも)は、タスクによって左右される
>ものではないと考えられていることです。つまり、ワープロのコードを記述するために最良の方法は、
>宇宙探査機の制御システムのコードを記述する上でも最良の方法だという憶測です。しかし、そうではありません。
0989デフォルトの名無しさん2014/08/12(火) 21:54:17.44ID:WT4baccH
日本語訳がおかしい気がする
0990デフォルトの名無しさん2014/08/12(火) 23:30:30.14ID:c+EybSyP
>>986
Lispならマクロがあるんだから、書いてるプログラムに適した言語に徐々に変形させてけばいいだけの話では
0991デフォルトの名無しさん2014/08/13(水) 12:56:48.74ID:mHK0rxRZ
>>990
むむむ、話には聞いているがまだLispのマクロは勉強してないから使えない
今、適用順Yコンビネータを」終えて、テーブルと環境に」はいりつつある段階
継続とかを」やるのかなあ
The Little Lisper(The Little Scemerの前のやつ)の最終章
9. What is the Value of All of This?
に入ったばかり
0992デフォルトの名無しさん2014/08/13(水) 13:35:53.90ID:IvuVUKO/
カギが着いてる括弧ですら合って無いと凄い違和感ががががが
0993はちみつ餃子 ◆8X2XSCHEME 2014/08/13(水) 14:50:42.95ID:EvyR27Lg
>>991
マクロがどうこうよりも問題領域を抽象化する手段があるってことだな。
マクロはその抽象化の手段のひとつ。
どういう語彙があれば問題を綺麗に記述できるのか考えて書くと Lisp っぽい。

よく Lisp を関数型という枠に当て嵌めてオブジェクト指向と対比させたりする文章を見掛けるけど、
CLOS をみてもわかるようにオブジェクト指向的な語彙を持つこともできるわけで。
0994デフォルトの名無しさん2014/08/14(木) 00:21:44.78ID:QvyhsdnL
マクロはschemeの本に書いてあるのは理解が色々めんどくさいから
先にLispの本読んだ方がいいよ
0995デフォルトの名無しさん2014/08/14(木) 06:31:11.88ID:lEamAioF
>>993
抽象化って俺の用語では概念化なんだな、その書き込みでわかった
こりゃ朝から気持ちがいいや
0996デフォルトの名無しさん2014/08/14(木) 20:08:32.90ID:3QMQeAhf
誰か次スレ頼む
0997はちみつ餃子 ◆8X2XSCHEME 2014/08/14(木) 20:53:52.23ID:o+vsYevq
立ててくるわー
0998はちみつ餃子 ◆8X2XSCHEME 2014/08/14(木) 20:57:01.27ID:o+vsYevq
立てたよ。

Lisp Scheme Part39
http://peace.2ch.net/test/read.cgi/tech/1408017352/
0999デフォルトの名無しさん2014/08/14(木) 23:25:06.85ID:otW9fVKB
おっつおっつ
1000はちみつ餃子 ◆8X2XSCHEME 2014/08/14(木) 23:29:50.60ID:o+vsYevq
>>1000 なら長門は俺の嫁
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。