X



Lisp Scheme Part40 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん垢版2015/03/16(月) 13:45:52.92ID:EEYZoZ1i
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part39
http://peace.2ch.net/test/read.cgi/tech/1408017352/

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

■関連スレ
【入門】Common Lisp その11【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1411307361/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
http://peace.2ch.net/test/read.cgi/tech/1272469779/
【Lisp】プログラミング言語 Clojure #3【JVM】
http://peace.2ch.net/test/read.cgi/tech/1380333808/
【魔法】リリカル☆Lisp【言語】
http://peace.2ch.net/test/read.cgi/tech/1183396621/
0261デフォルトの名無しさん垢版2015/11/19(木) 02:17:36.76ID:sAMKa/4u
アスぺの人、和田訳を執拗に擁護するのはなんなんだろうな
専門知識で足りない英語力を補っているから、minghai訳よりはマシって程度なのに
0263デフォルトの名無しさん垢版2015/11/20(金) 01:28:32.20ID:sUCS+w9M
和田訳こそ英文が読めなくて、日本語を適当にでっちあげた
真鍋のいうところの腐臭のする糞訳なのに、
どういうわけか擁護するんだよな
0265デフォルトの名無しさん垢版2015/11/20(金) 22:14:38.36ID:qdgYLPrR
照り輝くbotはもともと糞訳をまとめたおもしろbotだろ
そもそも照り輝く自体相当前からネタにされてるし
0268デフォルトの名無しさん垢版2015/11/21(土) 02:17:10.09ID:kXonXFHs
>>260
はてブ気持ち悪いのだけ一貫してて主張がコロコロ変わってて面白い
主張は変わってないのに同じ人が擁護したと思ったら次の記事には叩いてんのな
0270デフォルトの名無しさん垢版2015/11/21(土) 04:49:29.21ID:pdN059iT
機械翻訳みたいな変な訳ばっかり
こういうのダメ出しするのも出版社の仕事だろ
アメリカの教科書はリーダブルじゃなきゃならないと聞くが
悪文で書いた教科書なんてのはそれこそ日本の悪文化だよ
ましてMITの教科書を改悪、悪文化するのはおかしいゾ
0273デフォルトの名無しさん垢版2015/11/28(土) 18:52:48.98ID:D0YQLzhL
プログラミングGauche尼で売り切れてオライリーが入荷待ちなんだけど
絶版?第2版?
0277デフォルトの名無しさん垢版2015/12/15(火) 12:22:58.17ID:HzjVt2sa
それで良い。
0279デフォルトの名無しさん垢版2015/12/16(水) 13:19:26.38ID:RBWQyPz5
(定義 (右から畳み込み リスト 乗算 単位元)
(もし (空? リスト) 単位元
(乗算 (車 リスト) (右から畳み込み (残余 リスト) 乗算 単位元))))
0282デフォルトの名無しさん垢版2015/12/17(木) 08:55:39.39ID:hUsjEVq7
Schemeを勉強しだす→「なんてシンプルかつエレガントなんだ!これさえあれば何でもできそうだ!」
Schemeで何か作ろうとしだす→「なんて面倒なんだ!CommonLispみたいに統一してくれよ!」

「R{5,6,7}RS準拠だぞ」
「けどここは各実装で好きにしていいぞ」
「皆自分でSchemeを作るんだぞ」
0287デフォルトの名無しさん垢版2015/12/18(金) 02:18:32.82ID:OqK6hc4t
「俺の母語はschemeだぞい」とかいうなら分かるんだけど。
俺がschemeってどういうことよ?もっと具体的に。
0291デフォルトの名無しさん垢版2015/12/18(金) 21:41:51.11ID:px/TD8Yb
> 俺自身がscheme
これは自分にはかなり納得がいく言い方だった。
自分はC++が主なんだけど、schemeを学んでから、その知見を取り入れて、
C++のスキルが顕著に上がったと思う。
自分の書くコードの質も、先輩の書いたコードに対する読解力も。
なんというか、schemeで考えてC++で書くようになったというか。
0295デフォルトの名無しさん垢版2015/12/20(日) 22:10:47.02ID:/efUAUTJ
>>292
漠然とした本なんかより処理系のソースコード
かといってgcc級の糞でかいの読めっても無理だろうから規模がちっこいやつね
ついでにその処理系で動作確認もできるし
0298デフォルトの名無しさん垢版2015/12/21(月) 02:08:17.88ID:4Mx5VRPH
>>292
前者は読んでておもしろい、後者はまじめに勉強にはなる
お金あるならどっちも読むと良いよ

あとは上の方に書かれてるけどソースコードはとっても勉強になるけどこれは結構しんどいと思うな(割と時間かかるから)。
0299はちみつ餃子 ◆8X2XSCHEME 垢版2015/12/21(月) 04:18:41.62ID:hvoGiEsW
基本的な考え方くらいはおさえとかないとソースから意図を読むのは難しいと思うよ。
0301デフォルトの名無しさん垢版2015/12/21(月) 23:04:52.99ID:yR7SLlOg
ttp://www.amazon.co.jp/dp/B018KXY55Y/
「LISPでわかる!プログラミング・自由に生きるための英語学習法」
何この…何これ?
kindleでサンプル見たんだけど、これで理解できる初学者いるの?
0304デフォルトの名無しさん垢版2015/12/22(火) 16:23:19.45ID:FIUTNb/j
>>301
Kindle出版のオナニー書籍にしか見えないんだけど内容どうだった?(prime会員だからタダでよめるんだけどなんか触るのイヤな感じ)
0306デフォルトの名無しさん垢版2015/12/23(水) 14:48:16.43ID:7PvFiWtw
>>304
サンプルの範囲では
「○○が出来ます」+コードサンプル
で1n
それが延々続いてた
目次見るとそこそこ解説もコードも書かなきゃいけなさそうなことも取り扱っているはずなんだが
0307デフォルトの名無しさん垢版2015/12/27(日) 21:55:10.69ID:3xQA5Ryh
自分もサンプル版を読んでみたけど、言語の解説という雰囲気ではなく、自分の勉強した内容を箇条書きっぽく書いてあるように感じた。
サンプルは最初の方しか読めないから、LISPそのものの説明のところだけしか読めてないけど、後半の応用部分は面白くなる可能性はあるかもしれないな。

英語学習法の部分については、
http://primitive-lisp.blog.so-net.ne.jp
独学でこのくらい書けるようになるのであればスゴイと思うし、ブログを日本から発信するのには十分かと。
でもネイティブの人はカタコトのように感じるレベル。
0308307垢版2015/12/27(日) 21:56:57.03ID:3xQA5Ryh
英語学習法の部分はサンプルに入ってないので、自分テキトーなことを言ってるぜ!?
0311デフォルトの名無しさん垢版2015/12/31(木) 23:31:36.96ID:qS77pLNQ
Deep Learningの人達はpythonフレームワークを乱立させてるけどlispのマクロ下位互換マクロ作ってるだけなのにいつ気がつくんだろ。lisp使えばフレームワークとかそもそも必要ないのに
0315デフォルトの名無しさん垢版2016/01/04(月) 17:11:28.45ID:Bo8UyxL4
他人の書いたpythonコードを解析しないといけなくなって
「めんどくさい
何でLispで書かないんだ
解析させられる俺の身にもなれ
Lispなら長さが半分以下の読みやすいコードになるのに」
という感情がとても高まってきている
0316デフォルトの名無しさん垢版2016/01/05(火) 12:25:36.29ID:o0yppUdN
お前が書いたlispのコードの方がもっとひどいんだがw
0317デフォルトの名無しさん垢版2016/01/06(水) 02:03:24.51ID:DSMnLqrW
windows内蔵言語のvbscriptでschemeモドキを作ろうと目論んでる
つってもちゃんとやるのはマクロと末尾再帰だけでね
variant型使ったリスト処理がどんだけ遅くなるか見ものだ
0318デフォルトの名無しさん垢版2016/01/08(金) 22:26:33.75ID:V05Ed+eX
100Gぐらいのメモリーに入りきらないデータを扱う時にpythonではジェネレター式というのを使うけどschemeやlispではどういうふうにするの?
0319はちみつ餃子 ◆8X2XSCHEME 垢版2016/01/09(土) 00:13:08.70ID:5sGg2rIv
典型的なのはストリーム (srfi-41)
http://srfi.schemers.org/srfi-41/srfi-41.html

ジェネレータの形にする場合もある。
http://practical-scheme.net/gauche/man/?l=jp&;p=gauche.generator

Gauche だと遅延シーケンスがある。
でも、これは処理系自体に組み込みじゃないと後付けでは難しいので遅延リストに依存したコードは移植性に難があるかもしれない。
http://practical-scheme.net/gauche/man/?l=jp&;p=%E9%81%85%E5%BB%B6%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9

単なるバイト列やテキストであればカスタムポートも使いやすいと思う。
0320デフォルトの名無しさん垢版2016/01/14(木) 11:57:12.25ID:PerBWHT+
https://github.com/dherman/c.rkt
これでC言語のプログラムを自由に加工したりできるっぽいのだけど
ドキュメントらしきものがない
誰かexample usageみたいなものどこかにないか知りませんか?
使えればかなり便利そうなんだけど
0325デフォルトの名無しさん垢版2016/01/19(火) 22:51:56.91ID:GxT4J/Gp
>>324
いや違うと思う。CLって多分思考(若しくは試行)ツールなんだと思うよ
俺が使いこなせないのは普段から抽象を扱ったりしてないから
0327デフォルトの名無しさん垢版2016/03/20(日) 14:40:59.70ID:B3NGK1ug
schmeme 手習いを反復してやってます
(cond ((eq? a (car lat)) ....
で eq? が真を返すときの実行文の文法がわかりません

教科書では
(cond ((eq? a (car lat))(cdr lat))
となっていますが
(cond ((eq? a (car lat))(print "abc")(cdr lat))
と真の時の従属節に関数実行のS式を追加することはOKでしょうか?

目的はデバッグのため
処理系はgauche です,プログラミングgaucheを手元に置いていますがよく読めてません
よろしくお願いいたします
0330デフォルトの名無しさん垢版2016/03/21(月) 00:04:00.00ID:4m5Wnyvm
>>329
condはifとbeginに置き換えられる
condをマクロとして実装してる処理系は多い
まず処理系のソースを見てごらんよ
(cond (test1 body1) (test2 body2) (else bodyn))は
(if test1 (begin body1) (if test2 (begin body2) (begin bodye)))
に一旦展開された後で項書き換えとかコンパイルとかされる
要するにcondのbody節は複文相当で最後の式の値が全体の式の値になる
構文が判らないレベルなら教科書は一旦捨てて処理系のソース読んだ方が早い
0331デフォルトの名無しさん垢版2016/03/21(月) 00:27:45.71ID:4m5Wnyvm
ちなみにschemeはマクロを除いて基本構文は5つしか必要ない
define lambda set! if beginだったかな?
でも厳密にはquote関係も数に入れると10個ぐらいかもしれない
それ以外は全て上の5構文を組み合わせたマクロとして定義できる
つまり上の5構文だけマスターしとけばよい

例えばletがマクロなら(let((var value)) 〜)は((lambda(var) 〜)value)
のように意味を全く違えずに置き換えられる
残りのマクロも同様に基本構文への展開形を連想できるようになれば
schemeの基本はマスターしたと思ってよい

ただし肝心のschemeのマクロの定義は手段が沢山あってカオスなので
schemeマクロの闇については自分で調べて下さい
gaucheなら大きく分けて2つだろうけど
0333デフォルトの名無しさん垢版2016/03/21(月) 23:00:02.23ID:b2VQ+ga6
ノートぱちょこん買い替える非業界人なんだけど、最近話題沸騰中の
LispとSchemeにちょっと興味があって。やっぱりマックにしたほうが
幸せになれるんでせうか?それとも、今までのぱちょこんをLinixに
したほうがいいのかな?
0336デフォルトの名無しさん垢版2016/03/22(火) 13:25:51.72ID:YJW8F40f
>>333
LispとSchemeで遊びたいならWindowsでもMacでも好きな方買って大丈夫
WindowsならWindowsに適したものが、MacだとUnix処理系から普通にって感じで入れられるよ。
0337デフォルトの名無しさん垢版2016/03/22(火) 13:35:28.39ID:dJvZYtfq
最近どこで話題沸騰中なんだ?
0340はちみつ餃子 ◆8X2XSCHEME 垢版2016/03/22(火) 18:32:27.01ID:0IAY/SZb
メモリを多めに積んだやつに VMware なり Virtual PC なりの仮想化ソフトを入れて使い分ければいいよ。
0341デフォルトの名無しさん垢版2016/03/22(火) 20:45:35.89ID:58hJQcjT
レスありがとうございます。質問者です。
やっぱりマックがいいという意見が多いみたいですね。
そろそろ新型出るという噂もあるようなので様子見て買ってみたいです。
LinuxはArchってのがいいんですかね?
昔のスラックウェアみたいなかんじなのかな。古いPCでも遊べそうですね。
0344デフォルトの名無しさん垢版2016/03/24(木) 16:51:59.81ID:l5cXeIqY
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus) 五味 弘
ていう本が出てるけど、これはISLispなの?CL?
0345デフォルトの名無しさん垢版2016/03/24(木) 17:29:50.47ID:swZqoyDh
>>344に限らず本スレの皆様への質問とお願い

> これはISLispなの?CL?

そもそもISLispを主たる対象とした日本語で書かれた本(言語仕様の詳解中心でもプログラミング中心でもどちらでも可)って
(個人や大学・研究所などのWebサイトにPDFファイル等の形でアップされているとかでなく印刷され商業的に通常の書店で
購入可能な形で販売されているという意味で)出版されているのですか?

日本語でLispの本というとSchemeかCLかしか存在しない(英語圏でも状況は変わらない)と個人的には思っていたのですが?
日本語に限らず英語でも構わないのでISLispを主題とした書籍をご存知でしたら教えて下さい
0346デフォルトの名無しさん垢版2016/03/24(木) 18:12:32.28ID:l5cXeIqY
ISLisp は、Lisp言語のISO標準であり、1997年にISO規格が制定されました。
ISLispは、業界標準となっていたCommon Lisp の言語仕様の巨大さに対して、
処理系の効率と学習・利用の容易さを向上するために, Common Lispを継承
しつつ EuLisp, Le Lisp, Scheme を参考としてコンパクトで一貫性のある
言語を目標に 開発されました。


とあるけど、そういえばISLispの本って見たことないかも。
0348デフォルトの名無しさん垢版2016/03/24(木) 23:12:30.66ID:hVZ/HIjt
著者「関数型おしえます!」(お?どれどれ)
著者「Lisp最高です!」(あ、うん)
著者「…islispデス…」(は?!なにそれ?伊豆lisp?)

ブロガーA「良著なのでコードをschemeで書きなおしました」(いいねえ)
ブロガーB「haskellでかきました」(うおおおおおおお!!!!!)

という反応になるよね。一般的には。
common lispかschemeで書き直したものをHPにアップすべきだと思う。
0350デフォルトの名無しさん垢版2016/03/25(金) 01:47:25.19ID:U5kXnQYj
はじめてのLisp関数型プログラミング、昨日買ったばかりなんだけど
ハズレ感が半端ない
0355デフォルトの名無しさん垢版2016/03/27(日) 18:57:11.14ID:0WFKXpdM
最近は、RHがclojureでうまく整理して、関数型含めてjsに広まる概念もあったりする。

逆の流れでいうとtransducerをhaskellで説明しようとしたけどちょっと足りない話。
https://reddit.com/r/haskell/comments/2cv6l4/clojures_transducers_are_perverse_lenses/

いまだとshapeless使えば静的な型検査通る可変な型扱うコレクションつくれるらしいので、上のやつみたいなのも着実に減っててるとは思う。
https://github.com/mandubian/scaledn

結局のところC#などにもそうやって取り込まれてるんじゃないかなと。
react(.js)もphpのテンプレートエンジンの置き換えからだそうで。
0358デフォルトの名無しさん垢版2016/03/27(日) 21:24:01.32ID:0fEHBexO
>>357
・特に [ ] のあたりの文法が違うのでLispの資産を移行できないから
・Lisp の ( ) の対応に慣れた人には、罠のようにはりめくらされた文法不一致があるから
・S式だけで構成できないから
・再帰末尾最適化に制限があるから
0359デフォルトの名無しさん垢版2016/03/27(日) 21:47:19.72ID:/EOuwLtH
>>358
1の[]に関しちゃ大昔のスーパー閉じ括弧の存在を忘れてもらっては困ると思うしschemeの一部処理系も括弧の代わりに表現力の強調で括弧と同等に扱う等に導入してるからそこまで嫌わんでもと思う
2の部分は許容してもらうしかないんじゃないのかなぁ、まぁ否定はしない
3は1と2の事だよね?
4はLispというよりscheme好きの人なら反発するのとてもよくわかる。(jvm側の問題でもあるけど)

[]に関しちゃむしろ良く出来てると思うのだよね、3が許せないとどうしようもないけど。

リーダーマクロが普通に扱えないって言う意味で怒ってるのかと思ったのでちょっとびっくりしました。>>358
0360デフォルトの名無しさん垢版2016/03/30(水) 01:19:52.13ID:4Lxy3Poc
>>358
> ・再帰末尾最適化に制限があるから

「再帰末尾」じゃなくて「末尾再帰」
元の英語は "tail recursion"
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況