Lisp Scheme Part41 (855レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
255: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/12/02(水) 11:19:13.62 ID:wCsCmSK2 >>254 私はその本を持っていないから具体的なことはわからんけど、 不慣れな初心者にとって継続渡しは実際に難しいと思う。 でも「難しい」だけで「理解できない」わけじゃないならたぶん前章まで一応の理解はできてるんじゃないかな。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/255
256: デフォルトの名無しさん [sage] 2020/12/02(水) 12:39:58.54 ID:2sTDa/BO 継続渡しスタイルに書き換える方法がわからないではなくて継続渡しスタイルに書き換える意味がわからないからかな? http://mevius.5ch.net/test/read.cgi/tech/1531587928/256
257: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/12/02(水) 13:45:58.76 ID:wCsCmSK2 ああ。 なるほど。 継続渡し形式でプログラムを書くことは実際にまず無いし便利でもないので その点では意味不明と感じられても仕方がないことではあるな。 後の話 (第一級継続) に繋がる前振りだと思うので、 この時点ではパズルとでも思ってとりあえずこなすしかないわ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/257
258: デフォルトの名無しさん [sage] 2020/12/02(水) 22:18:09.20 ID:3rT4yRJc >>256 そんな感じです 例で挙げられてる渡される側の関数が何したいのかよくわからないし 多分、教育的に意図的にそうしてるのかもしれないけど その意図がいまいちわからなくてモヤモヤするんですよね >>257 一応追っかけることは出来るんですが 直で継続教えてもらったほうがわかりやすいような気がするのですが… つまり、読めてないってことなんだろうなと http://mevius.5ch.net/test/read.cgi/tech/1531587928/258
259: 256 [sage] 2020/12/02(水) 22:40:35.57 ID:2sTDa/BO 俺はsicpでcall-cc出てきてもさっぱり理解できなかったけど、 onlispで継続の実装を読んでやっと理解できた。 継続でできることってのは超高性能goto(?)が使えるようになることなんだけど、 そのためには継続渡しスタイルで今までの状態(実際はクロージャだけど)の全部または一部を渡して計算をしていくんだよ。 渡されたクロージャのどれかを呼び出す事によって以前の状態に復帰できる。 みたいなことだったと思う。空覚えなんで誰か突っ込んでね。 それと本のわからんところのコード
を貼れば誰か解説してくれんじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/259
260: デフォルトの名無しさん [sage] 2020/12/02(水) 22:45:58.51 ID:2sTDa/BO 超高性能gotoって書いてるのは普通の言語のgotoって同じ関数内でしかジャンプできないんだけど、 継続なら安全に関数間でもジャンプできるっていう意味。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/260
261: デフォルトの名無しさん [sage] 2020/12/02(水) 22:48:34.44 ID:2sTDa/BO 継続はわかってしまえば当たり前でどこにでも存在してるんだけど、 継続を考えたやつは本当頭いいわとおもった。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/261
262: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/12/02(水) 23:20:42.42 ID:wCsCmSK2 >>258 「プログラミング言語 Scheme」や「プログラミング Gauche」でもそういう手順で説明されている。 ネット上で見つかる解説でもよくあるパターン。 http://www.shido.info/lisp/scheme_cc.html http://www.nct9.ne.jp/m_hiroi/func/abcscm20.html ようするに定番なんですわ……。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/262
263: デフォルトの名無しさん [sage] 2020/12/03(木) 00:08:17.53 ID:BSRv8eBD なんでも継続 http://practical-scheme.net/docs/cont-j.html はよ完成させて http://mevius.5ch.net/test/read.cgi/tech/1531587928/263
264: デフォルトの名無しさん [] 2020/12/03(木) 12:12:09.32 ID:vc9+WZu6 Landin's J operator の糖衣みたいなもんじゃ? call-ccって. http://mevius.5ch.net/test/read.cgi/tech/1531587928/264
265: デフォルトの名無しさん [sage] 2020/12/03(木) 14:15:21.78 ID:sf+VFKLQ 普段cl書きなんでこのまま動くか知らんが、雰囲気はたぶん (define call/cc (lambda (func) (func (J (lambda x x))) http://mevius.5ch.net/test/read.cgi/tech/1531587928/265
266: デフォルトの名無しさん [sage] 2020/12/03(木) 19:48:43.98 ID:1MHSKMz8 >>258 継続渡しの初期の用例にヒューイットのアクター理論があるように 並行性が絡むと有り難いこともあるけど Schemeの規格にそういうのがないから Gaucheを使ったウェブアプリサーバーにKahuaってのがあったけど あれが継続渡しを使ってたはず http://mevius.5ch.net/test/read.cgi/tech/1531587928/266
267: デフォルトの名無しさん [] 2020/12/04(金) 22:12:04.78 ID:9AUT9QCq エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】 https://www.youtube.com/watch?v=3YwyYSj-k2s 派遣エージェントの言う事は9割ウソである理由【カモられない方法】 https://www.youtube.com/watch?v=8DxQFLAuFqo&t=231s IT業界のヤバすぎる落とし穴5選 https://www.youtube.com/watch?v=WPPCJ4o-mpA 絶対にエンジニアになってはいけない人とは【ハイクラス人材】 https://www.youtube.com/watch?v=kKUC7rZRUtc りゅうけんKENTAマナブは怪しい
アフィ勢だとベテランエンジニア(笑)に言われるらしいwww https://www.youtube.com/watch?v=Cp7ByHiFk6Y 【個人で稼ぐ】会社を辞める前に習得しておくべきスキル5選 https://www.youtube.com/watch?v=8WB4O1V6YLg 【聞いてください】「会社員」という働き方の本当のヤバさ https://www.youtube.com/watch?v=HbIAACbQkPc サラリーマンが知らないフリーランスの真実 https://www.youtube.com/watch?v=vxVG8eAQbsc http://mevius.5ch.net/test/read.cgi/tech/1531587928/267
268: デフォルトの名無しさん [sage] 2020/12/07(月) 13:18:23.95 ID:kze+rPTU 結局call/ccは実装読んだ方が早い http://mevius.5ch.net/test/read.cgi/tech/1531587928/268
269: デフォルトの名無しさん [sage] 2020/12/08(火) 00:25:26.96 ID:g/rTchWW そういう発想はschemeっぽくないと思う これはコンピュータにかける魔法言語なんだからぁ http://mevius.5ch.net/test/read.cgi/tech/1531587928/269
270: デフォルトの名無しさん [sage] 2020/12/08(火) 10:24:39.14 ID:7buWiz9t schemeは知らんがclでcall/ccエミュってるぞ、こういうのは勉強になる 閲覧無料の論文もたくさん出てくるし、確かrosetta code(だったか)に少し残念だけど動く実装載ってた気がする デフォでdynamic scopeのclの方が(エミュる)のはむしろ簡単な気がする http://mevius.5ch.net/test/read.cgi/tech/1531587928/270
271: デフォルトの名無しさん [sage] 2020/12/10(木) 03:16:14.79 ID:FVBY7yTa clデフォでdynamic scopeじゃないな どういうcps実装なん http://mevius.5ch.net/test/read.cgi/tech/1531587928/271
272: デフォルトの名無しさん [sage] 2020/12/10(木) 19:52:56.52 ID:m5YUCflP dr.schemeを起動したらada lavelaceが表示された。12月10日が誕生日らしい。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/272
273: デフォルトの名無しさん [sage] 2020/12/18(金) 00:23:57.39 ID:xE2tdWzM 3月にサスマンの新しい本が出ますね http://mevius.5ch.net/test/read.cgi/tech/1531587928/273
274: デフォルトの名無しさん [sage] 2020/12/18(金) 00:35:54.39 ID:wHl77nxB Software Design for Flexibility How to Avoid Programming Yourself into a Corner https://mitpress.mit.edu/books/software-design-flexibility http://mevius.5ch.net/test/read.cgi/tech/1531587928/274
275: ◆QZaw55cn4c [sage] 2021/01/02(土) 01:05:03.40 ID:wp0Bo1A/ >>6 この冬、職場から休暇をいただいたことをきっかけに a little schemer への再チャレンジを始めました 2週間では >>6 までは進めなかったけれども、しつこくてべたな精読を今後も継続することにしました‥‥個人的な話でごめんなさい http://mevius.5ch.net/test/read.cgi/tech/1531587928/275
276: デフォルトの名無しさん [sage] 2021/01/02(土) 09:30:41.51 ID:DXffwUjS 頑張れ http://mevius.5ch.net/test/read.cgi/tech/1531587928/276
277: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/01/02(土) 12:55:01.66 ID:rf+zWHQf 2018 年の話題へスレ内でアンカーできるあたり、だいぶん進みの遅いスレだなぁ…… ところで先月、 Gauche の 0.9.10 がリリースされたよ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/277
278: デフォルトの名無しさん [sage] 2021/01/11(月) 12:28:40.23 ID:evx8yw3j 最近Clojureをさわって思ったんだけど、コンスって必要?ただのリストじゃだめなん? http://mevius.5ch.net/test/read.cgi/tech/1531587928/278
279: デフォルトの名無しさん [sage] 2021/01/11(月) 22:00:08.80 ID:TgqHKx3G 最近はlistと言いつつ狭義のlist(linked)じゃなくlinked arrayな事が多いけどclosureもそれかな?(触ってないごめん (三十年前の言語だけど)Pythonのコード読んだけどそうだったはず 計算量の議論なんかだとlinked listとarrayは一長一短ってことになってるが、アーキテクチャと殆どのデータの性質によって連結配列が実質万能なんで仕方ないね 抽象データ型としてcons/car/cdrというインターフェイスを提供してるなら十分lispだよ consがなんでそんな大事なのかとい
うと、普通に使われる抽象データ型の中では最も表現力が高いこと 単に自由に伸ばせるリストのようなモノでは、構文上バイナリツリーより複雑な構造は書きにくい(ポインタを駆使しない限り) consが提供されていれば自然に平面DAGが、そしてちょっと読みにくくなる程度で任意のグラフが表現できる 化学構造やグラフをconsで扱ってるけどほんと便利だよ http://mevius.5ch.net/test/read.cgi/tech/1531587928/279
280: デフォルトの名無しさん [sage] 2021/01/11(月) 23:51:15.24 ID:TgqHKx3G 書きにくい/やすい、ってのは環や分岐がcarとcdrとconsだけで書けるって意味ね これらのアクセサが提供されていない言語、例えはPythonやcではリストのインデックスに対応する参照/ポインタを明示的に取り出して記録し、アドレスを格納する必要がある またアルゴリズムにかける時に素の型とポインタ型を区別して場合分けする必要まである そのまま文字列として吐くのも実装しなくていいし(リンク先のインデックス表示が読みやすいとは言わないが) Pythonなんかだとオブ
ジェクトがリッチなのでnetworkXのような巨大なライブラリを使えば木を超えた表現も自然にかけるので、一時浮気をしたが… 形式言語の分野だともう線形な文字列や二分木の括弧文法は研究され尽くしてるので、グラフ文法なんかが最近流行ってlisp系言語で論文書かれてるね http://mevius.5ch.net/test/read.cgi/tech/1531587928/280
281: デフォルトの名無しさん [sage] 2021/01/12(火) 00:03:51.23 ID:XqNkUArk 連投してごめんだけど、環や分岐がポインタ使わず自在に描けるのはかしこいsetfの寄与もある、って書き忘れてた(schemeはset-cdr!だっけ) 念のため http://mevius.5ch.net/test/read.cgi/tech/1531587928/281
282: デフォルトの名無しさん [sage] 2021/01/13(水) 22:45:17.14 ID:c60O+Iz7 >>279 興味深い内容をありがとう ちょこちょこ遊んでいるだけなので到底そこまで使いこなせる気がしないけど、 データをプログラム中にストレートに表現して操作できるというのはよく分かる 他の言語だとデータを保持するためにわざわざクラス設計からしないと いけないような強迫観念にかられるけど、lispはそういう気にならない http://mevius.5ch.net/test/read.cgi/tech/1531587928/282
283: デフォルトの名無しさん [sage] 2021/01/14(木) 12:13:04.15 ID:/NlgSZrU データ型を定義しないのはトイプログラムだけだけどな Lispはリストだけ使うのが通だとか善意で広めないでくれよ http://mevius.5ch.net/test/read.cgi/tech/1531587928/283
284: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/01/14(木) 22:43:13.17 ID:9qLPLWCT (カッチリした型を中心にする言語に比べれば) 最初はラフに 書き始められるというのはあると思うよ。 でも、そのままだと千行くらいの規模でももうだいぶんキツいんじゃないかな。 人によってはコードを書く腕力 (?) というか強引に行けちゃう人もいるけど、 雑に試行錯誤できるということとそこから部品として確立するのは別の段階なので、 試行錯誤で弄ってるときと同じノリでどんどん拡大していったら すぐわけわからんようになる。 世間で思われているよりは型
定義はすると私も思う。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/284
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 571 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s