Lisp Scheme Part41 (855レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
168: デフォルトの名無しさん [sage] 2020/03/05(木) 20:34:42.44 ID:h922Dn8C >>82 >>84 MITの件もあるし 今ならPythonでいいでしょ MITレベルの頭ならLispなんて すぐ読み書きできると思うが http://mevius.5ch.net/test/read.cgi/tech/1531587928/168
169: デフォルトの名無しさん [sage] 2020/03/05(木) 20:39:40.49 ID:h922Dn8C >>146 >論理プログラム言語(Prolog)なんて ほとんどのプログラマが 仕事では一生使わないだろうな? でも設計をする上で参考になる http://mevius.5ch.net/test/read.cgi/tech/1531587928/169
170: デフォルトの名無しさん [sage] 2020/03/05(木) 20:41:41.16 ID:h922Dn8C >>149 Prologの勉強は無駄ではないと思うが すぐ成果には結びつかないだろうね? でも長期的には流行りの言語やFWに飛びつくより 地力につながる可能性もあるだろう http://mevius.5ch.net/test/read.cgi/tech/1531587928/170
171: デフォルトの名無しさん [sage] 2020/03/05(木) 20:42:43.57 ID:h922Dn8C >>150 宣言型という点では近いけど言語としては同じじゃない ユニフィケーションやバックトラックの挙動があるから http://mevius.5ch.net/test/read.cgi/tech/1531587928/171
172: デフォルトの名無しさん [sage] 2020/03/05(木) 20:44:54.71 ID:h922Dn8C >>151 AIはディープラーニングが主流になったが それはそれとしてアレでPrologがもう少し 分かりやすければ日常的に使うんだけどな これどうやって書くんだってのが多すぎる http://mevius.5ch.net/test/read.cgi/tech/1531587928/172
173: デフォルトの名無しさん [sage] 2020/03/05(木) 20:47:20.68 ID:h922Dn8C >>156 Lispはメタプログラミングしやすいって理屈は分かるが 実際にそれでものすごい作業効率が上がるかは疑問だな? なぜんあらメジャーな言語はライブラリが充実してて それ使えば最初から書かなくても済むわけだから早い http://mevius.5ch.net/test/read.cgi/tech/1531587928/173
174: デフォルトの名無しさん [sage] 2020/03/05(木) 20:48:56.47 ID:h922Dn8C >>159 本当にできるかできないかは知らんが そういえばメタプロやってるって 声ほとんど聞いたことないな Lisp勢はマクロマクロうるさいのに http://mevius.5ch.net/test/read.cgi/tech/1531587928/174
175: デフォルトの名無しさん [sage] 2020/03/05(木) 23:31:57.86 ID:ilhNvGHV 3文字で頼む http://mevius.5ch.net/test/read.cgi/tech/1531587928/175
176: デフォルトの名無しさん [sage] 2020/03/06(金) 05:04:10.79 ID:nWpA6pnf スレチ http://mevius.5ch.net/test/read.cgi/tech/1531587928/176
177: デフォルトの名無しさん [] 2020/03/10(火) 18:23:23.35 ID:BcZoFSIR hy マクロの入力にpair入れたのに マクロ実行時にunquoteするとlistに化けるバグがある気がする http://mevius.5ch.net/test/read.cgi/tech/1531587928/177
178: デフォルトの名無しさん [sage] 2020/03/26(木) 18:40:18.93 ID:jDMenf5s 日本の理系人のLisp好きは異常 http://mevius.5ch.net/test/read.cgi/tech/1531587928/178
179: デフォルトの名無しさん [sage] 2020/03/26(木) 21:06:12.72 ID:x3TTE31H 土日はおとなしくLispでも http://mevius.5ch.net/test/read.cgi/tech/1531587928/179
180: デフォルトの名無しさん [sage] 2020/04/24(金) 18:37:15.78 ID:3QH+ANBn Clozure CL 1.12 がでてきた。 https://github.com/Clozure/ccl/releases/tag/v1.12 ぜんぜん 1.11 からバージョンあがらないから死んじゃったのかと思ったよ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/180
181: デフォルトの名無しさん [sage] 2020/04/24(金) 19:04:52.05 ID:aAxBS6wC 死んでるんじゃない 枯れてるんだ😡 http://mevius.5ch.net/test/read.cgi/tech/1531587928/181
182: 180 [sage] 2020/04/25(土) 00:16:26.67 ID:iXfl78KC >>181 ごめんなさい ECL(Embeddable Common-Lisp)もバージョンアップしてた。 16.1.3から20.4.24になってる。 まだトップページ更新がないけど……。 https://common-lisp.net/project/ecl/index.html 変更点は以下 https://gitlab.com/embeddable-common-lisp/ecl/-/blob/20.4.24/CHANGELOG http://mevius.5ch.net/test/read.cgi/tech/1531587928/182
183: デフォルトの名無しさん [sage] 2020/04/25(土) 01:57:04.26 ID:u9oymkho >>180 キタ━━━━(゚∀゚)━━━━!! http://mevius.5ch.net/test/read.cgi/tech/1531587928/183
184: デフォルトの名無しさん [sage] 2020/04/25(土) 07:07:50.62 ID:q++AEQsZ 小学校でlispを教えたらいいのに http://mevius.5ch.net/test/read.cgi/tech/1531587928/184
185: 182 [sage] 2020/04/25(土) 13:34:52.97 ID:tfHLOmTJ News が更新されたよ。 https://common-lisp.net/project/ecl/posts/ECL-20424-release.html http://mevius.5ch.net/test/read.cgi/tech/1531587928/185
186: _ [sage] 2020/04/28(火) 00:30:29.10 ID:moc7J10E SBCL 2.0.4 リリースされたよ。RISC-V プロセッサに対応したのが目玉みたいだよ。 http://www.sbcl.org/news.html#2.0.4 http://mevius.5ch.net/test/read.cgi/tech/1531587928/186
187: デフォルトの名無しさん [sage] 2020/04/28(火) 11:03:05.28 ID:jkGkDNpV Scheme の map 手続きについて、 手続きを適用する順序 (副作用が発生する順序) は仕様上は未規定ということになっています。 各処理系として保証するということは有りえるんですが、 Racket の場合は保証されていると読み取って良いでしょうか? https://docs.racket-lang.org/reference/pairs.html?q=map#%28def._%28%28lib._racket%2Fprivate%2Fmap..rkt%29._map%29%29 わざわざ "from the first elements to the last" という書き方をしているからには順序を意図しているように 解釈するのが自然かとは思うんですが、単に範囲を言っていると解釈できなくもないので、 英語と Racket に明るい方がいればご教示賜りたいです。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/187
188: _ [sage] 2020/04/28(火) 14:05:01.63 ID:moc7J10E >>187 racket使ってるわけでも英語ができるわけでもないけど。 最初から最後までって範囲の話してるんじゃなかろうか。 順序の保証があるなら IN ORDER とか付きそうな気がする。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/188
189: デフォルトの名無しさん [sage] 2020/04/28(火) 14:43:15.44 ID:jkGkDNpV >>188 R5RS などでは手続きが各要素に適用される dynamic order は unspecified である というような表現になってるんですよ。 order という語が主語になってます。 https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-9.html?q=map#%25_idx_580 だからわざわざ変えた表現をするからには違うこと (順序が保証される) を言おうとしているんだろうと思いつつも、 明確に順序を強調してるわけでもないな……? というところで解釈に迷ってました。 私は R5RS (など) と言い回しが違うという点に引きずられていましたが、 "from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス で捉える方が自然ですかね。 私自身はいずれにしても map の副作用の順序に期待しないんですが、 しばらく前に Qiita に投稿されていた記事の中で map の順序が効いてくるコードがあったので、 これってありなんかなぁと思ったという経緯です。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/189
190: デフォルトの名無しさん [sage] 2020/04/29(水) 01:16:58.58 ID:y02v3tEE >>187 保証とはどういうことを指しているのだろう 将来仕様を変更しないとは書いていないのは確かなようだ racketでは引数の評価もleft to rightとは書いてあった schemeでもfor-eachは先頭から順番に評価する 実際に評価順の違いが観察できるのはchezかな http://mevius.5ch.net/test/read.cgi/tech/1531587928/190
191: デフォルトの名無しさん [sage] 2020/04/29(水) 03:18:21.69 ID:ALOjMFFX >>189 > 私は R5RS (など) と言い回しが違うという点に引きずられていましたが、 > "from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス > で捉える方が自然ですかね。 いや、違う。 R5RSとRacket Reference v7.6とでのmapが手続き(proc)を適用する要素の順番に関して言及しているのは 各々、以下の箇所だが、両者では明らかに全く異なる。 R5RS>The dynamic order in which proc is applied to the elements of the lists is unspecified. Racket>Applies proc to the elements of the lsts from the first elements to the last. R5RSは>>187で君が述べていた通り、リストの要素への適用順序はunspecifiedだと明確に書いてある。 これに対してRacket v7.6ではprocをlstsの最初の要素から最後の要素へと適用すると書いてある、 つまりリストlstsの要素の並びの順番に手続きprocを適用して行くと明記している。 だからprocとして受け取った値を標準出力に書き出す手続きを渡せば、R5RSでは表示される要素の順番はどんな順序でも良いのに対して Racket v7.6では元のリストlstの要素の並び順に必ず表示せねばならない。 これは私の想像だが、R5RSでmapが手続きを適用する要素の順番を規定しないと明記しているのは長大なリストに対する並列処理を可能にするためだろう。 逆に言えば手続きの適用順序を確実に把握したい場合にはmapでなくfor-eachを使えというのがR5RSを定めたチームの言語設計上の意図だろう。 >>190 > 保証とはどういうことを指しているのだろう その言語仕様書のそのバージョンに準拠していると宣言している言語処理系は、それを守らねばならない(守っていなければバグだ)という意味だよ。 だから今の例では、Racket Reference v7.6準拠と処理系が宣言したら、その処理系はmapで手続きを適用する要素の順番を必ずリストの並び順に する義務が生ずる(Racket v7.6の定める言語仕様=Racket v7.6ユーザとの約束の順守を保証せねばならない)、ということだ。 当然ながら、言語仕様書のバージョンが変われば約束(つまり言語仕様による規定の内容)も変更され得る。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/191
192: デフォルトの名無しさん [sage] 2020/04/29(水) 06:44:54.55 ID:bLWOmnfL >>187 処理系によって(A B C)の評価順序が (1 2 3)だったり(3 1 2)だったり(3 2 1)だったりするから mapのようなリストで処理結果を返すような関数のクロージャ内では原則副作用は起こさないことが求められる for-eachみたいな初めから副作用を期待する関数はどう並べようが問題は起きない http://mevius.5ch.net/test/read.cgi/tech/1531587928/192
193: デフォルトの名無しさん [sage] 2020/04/29(水) 09:21:45.86 ID:sxS/u8Yc >>192 それは承知しているのです。 ここでは Racket のドキュメントをどう解釈すべきかというのが論点です。 >>191 > 最初の要素から最後の要素へと適用すると書いてある 順番に (in order) とは書いていません。 順序が意味を持つ箇所ではおおよそ order という語で強調しているのに それがないここでも順番であることを確信してよいほどに (英語のニュアンスとして) 自明でしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/193
194: デフォルトの名無しさん [sage] 2020/04/29(水) 09:54:06.36 ID:sxS/u8Yc >>191 > 長大なリストに対する並列処理を可能にするためだろう 手続きの引数の評価順序については未規定ではあるものの "some sequential order of evaluation" という制約がついています。 https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-7.html#%_sec_4.1.3 ちょっとわかり難いんですが、これは「同時ではない (かのように動作する)」と解されるそうです。 たとえば (list (begin (display 'a) (display 'b) 1) (begin (display 'c) (display 'd) 2)) とあったときに表示は abcd か cdab のどちらかであり acbd だったり cabd だったりはしない ということです。 map についてはこういう制約は書かれてはいないものの、 順序は規定しないという文言は「既定はしないけどなんらかの順序を想定する」 とも読めなくもないので並列化を許しているとは言い切れない気がします。 副作用がないときに限っては並列化しても仕様に反しないのは間違いないですけど、 その場合は順序に関して有るとも無いとも書く必要がないんですよね。 どうせ観測できないので。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/194
195: デフォルトの名無しさん [sage] 2020/04/29(水) 12:39:32.81 ID:qQMMu/UY >>194 mapについては、まえからか、うしろからか好きな方で実装すればいいよ、程度のはなしだとおもってた。 継続を突っ込むとどうとかいうのがあったとおもうけどだれか解説pls http://mevius.5ch.net/test/read.cgi/tech/1531587928/195
196: 187 [sage] 2020/04/29(水) 13:42:08.04 ID:sxS/u8Yc >>195 継続については「call/cc は副作用を生じる」というひとことで説明できます。 副作用とは何かというのは色々なモデル化のやり方があってはっきりしたひとつの定義を 定められないみたいなんですが、この説明が納得感があって参考になると思います。 https://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3Acall%2Fcc%E3%81%A8%E5%89%AF%E4%BD%9C%E7%94%A8 副作用がないなら順序なんか考える必要はないんですよ。 どの順序で実行されようと並列であろうと (観測できる) 結果は同じなので順序を気にする意味がありません。 結果が同じにならない場合 (副作用がある場合) がどうあるべきか考えるから順序が効いてくるんです。 で、副作用がある手続きの中でも特に第一級継続は (観測できるだけでなく) 流れを変えることが出来るから どれが妥当なのか結論が出ないなぁってことです。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/196
197: デフォルトの名無しさん [sage] 2020/04/29(水) 14:57:29.24 ID:u7alO7eW グラフかくのってどうしたらいい?gnuplotの🎺使うの? gnuplot使ったことないけど難しいのか? http://mevius.5ch.net/test/read.cgi/tech/1531587928/197
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 658 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s