Lisp Scheme Part41 (858レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
202: _ [sage] 2020/05/03(日) 15:45:23.91 ID:XyvLD4Kl そうこうしているうち Racket 7.7 リリースされたよ。 https://blog.racket-lang.org/2020/05/racket-v7-7.html 個人的なトピックス ・イミュータブルで高速なハッシュテーブルHAMT(hash array mapped trie)がインプリされた。 ・コンパイラの最適化でコードサイズ20%減。 ・GC1,2割高速化。 ・ドキュメント改善。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/202
203: デフォルトの名無しさん [sage] 2020/05/03(日) 18:58:12.70 ID:BS5ww13P 今の Racket は ChezScheme をバックエンドにしたやつと従来からのやつがどちらも配信されているけど、 これって将来的には一本化される予定ってあるのかな? http://mevius.5ch.net/test/read.cgi/tech/1531587928/203
204: デフォルトの名無しさん [] 2020/05/04(月) 08:02:38.27 ID:QFOyDpRt hy言語をwindows10で使いたい pip install hyは成功するが コマンドプロンプトでhyと入力してもhyが実行されない 変なパスの設定がいる? http://mevius.5ch.net/test/read.cgi/tech/1531587928/204
205: デフォルトの名無しさん [] 2020/05/04(月) 17:14:51.89 ID:WvOaLqMC >>204 管理者権限でインストールしたなら C:\Program Files\Python37\Scripts だけど、 ユーザ権限なら %LocalAppData%\Programs\Python の下のどこからしい。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/205
206: デフォルトの名無しさん [sage] 2020/05/07(木) 13:26:34.69 ID:fANici3H >>202 キタ━━━━(゚∀゚)━━━━!! http://mevius.5ch.net/test/read.cgi/tech/1531587928/206
207: デフォルトの名無しさん [] 2020/05/29(金) 15:53:20.54 ID:Xj9bBIl5 https://www.indeed.com/q-Lisp-jobs.html ここで何度も募集かかってる企業って人が辞めるのも早いってこと? 防衛産業の企業は人気ないとかなのかな http://mevius.5ch.net/test/read.cgi/tech/1531587928/207
208: デフォルトの名無しさん [] 2020/05/31(日) 00:46:42.64 ID:RkS0wDCU Common Lispは使い込まないと頭に入ってこないが Racketにはドキュメント読んだだけで頭にすっと入ってくる綺麗さがあった 最近のRacketって昔と同じ感じの綺麗なままなんだろうか 最近読んだRacketの() []の括弧を区別する方法のドキュメントがわかりにくくて RacketもCommonLispと同じなってしまって,これならCommon Lispでいいじゃん と思ったのだが http://mevius.5ch.net/test/read.cgi/tech/1531587928/208
209: デフォルトの名無しさん [sage] 2020/05/31(日) 16:35:47.71 ID:6jrbJecg > 最近読んだRacketの() []の括弧を区別する方法 racketがschemeから枝分かれして10年だがracketになるよりまえのr6rsからだろ たまにしか書かない程度ならなんでも良いだろ大袈裟だな http://mevius.5ch.net/test/read.cgi/tech/1531587928/209
210: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/06/01(月) 02:26:33.76 ID:0yVOdbpz Racket は元は教育用途で使われていたこともあってドキュメントはかなり整備されている部類だと思うが。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/210
211: デフォルトの名無しさん [sage] 2020/06/02(火) 22:21:53.62 ID:0sTsfEfs 他の言語と比べてCommon Lispっぽい書き方、Schemeっぽい書き方ってどんな書き方ですかね http://mevius.5ch.net/test/read.cgi/tech/1531587928/211
212: デフォルトの名無しさん [sage] 2020/06/03(水) 00:06:28.05 ID:OT4MJN13 そら末尾再帰をふんだんに使うとか変数はなるべく使わないとか http://mevius.5ch.net/test/read.cgi/tech/1531587928/212
213: デフォルトの名無しさん [sage] 2020/06/03(水) 00:18:32.67 ID:5C2VTXl3 CLっぽい書き方はマクロを使いまくった超絶技巧だろう Schemeっぽい書き方は兎に角無理矢理に再起呼び出しを使った超絶技巧な書き方だろう http://mevius.5ch.net/test/read.cgi/tech/1531587928/213
214: デフォルトの名無しさん [sage] 2020/06/03(水) 01:17:24.97 ID:gRMTE3Wt ダイナミックスコープ活用してるの見るとcommon lispだなぁって思う http://mevius.5ch.net/test/read.cgi/tech/1531587928/214
215: デフォルトの名無しさん [sage] 2020/06/03(水) 09:04:50.18 ID:yr2/b+Mr 括弧のやまがある時点でlispっぽい。あとはまあ、ラムダ式とかもほかに普及してきてるから、マクロかなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/215
216: デフォルトの名無しさん [] 2020/06/05(金) 13:14:24.46 ID:dnBRE6E+ hy言語良いのにpython使いが良さをわかってくれない http://mevius.5ch.net/test/read.cgi/tech/1531587928/216
217: デフォルトの名無しさん [sage] 2020/06/05(金) 23:11:11.70 ID:gXepSjvX 見るからに検索に引っかからなそう 名前って大事だよね・・・ http://mevius.5ch.net/test/read.cgi/tech/1531587928/217
218: デフォルトの名無しさん [sage] 2020/06/26(金) 20:41:33.71 ID:zhAvJTli LispworksのprofessionalとhobbyistDVどう違うの? http://mevius.5ch.net/test/read.cgi/tech/1531587928/218
219: デフォルトの名無しさん [sage] 2020/06/27(土) 16:06:22.83 ID:9QvR4hLZ Lispworksのprofessional 32bitかhobbyistDV 64bitどっち買うか迷う http://mevius.5ch.net/test/read.cgi/tech/1531587928/219
220: デフォルトの名無しさん [sage] 2020/06/29(月) 08:04:38.82 ID:bwiS8r2m >>218 hobbyistDVは業務で使うことはできんくて作成したEXEも配布できないです professionalは業務用途で無制限の配布ライセンス込みです 業務で使用するEXEの配布をするのが目的かどうかでしょうね http://mevius.5ch.net/test/read.cgi/tech/1531587928/220
221: デフォルトの名無しさん [] 2020/07/21(火) 23:47:51.88 ID:WS1OAOc5 Pythonぽい独自言語をpythonに変換したい Lispは使わずpythonのパーサー使った方が楽だろうか http://mevius.5ch.net/test/read.cgi/tech/1531587928/221
222: デフォルトの名無しさん [sage] 2020/07/22(水) 00:07:10.65 ID:Rr/gpg4T >>221 PythonぽいならPythonに変換すればいいだろ! http://mevius.5ch.net/test/read.cgi/tech/1531587928/222
223: デフォルトの名無しさん [] 2020/07/22(水) 19:30:54.17 ID:Cq/LgZJ4 hyこういう時に使えるのか http://mevius.5ch.net/test/read.cgi/tech/1531587928/223
224: デフォルトの名無しさん [sage] 2020/08/21(金) 21:28:14.79 ID:l/GdGvyy racketでデバッグするのは DrRacketを使うしかない? コマンドラインでデバッグできたらいいんだが http://mevius.5ch.net/test/read.cgi/tech/1531587928/224
225: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/08/24(月) 02:59:00.85 ID:ko9AntT7 デバッグってどういうレベルのことだろ。 REPL はあるんだからそこから実行してみればいいんじゃね。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/225
226: デフォルトの名無しさん [] 2020/10/05(月) 07:37:00.61 ID:VkmQCekf Python のpandasが日時関係処理充実しすぎて手放せない しかしlispで似たことできるなら乗り換えたい Pandasのデータからガントチャート作ってくれさえすればいいのだけど Lispに相当するものないでしょうか http://mevius.5ch.net/test/read.cgi/tech/1531587928/226
227: デフォルトの名無しさん [sage] 2020/10/05(月) 23:29:50.84 ID:+akcWJTJ 既に手放せないほどのものを漠然としたlispへの印象で乗り換えたら全てが満足したという話は寡聞にして知らない http://mevius.5ch.net/test/read.cgi/tech/1531587928/227
228: デフォルトの名無しさん [] 2020/10/07(水) 06:01:50.72 ID:K2xU1fKa pandasはRの劣化コピーで Rはschemeと相性がいいから Rに乗り換えると良いのでは? http://mevius.5ch.net/test/read.cgi/tech/1531587928/228
229: デフォルトの名無しさん [sage] 2020/10/07(水) 11:49:58.33 ID:jq/8+j7g 邪道かもしれないが hy使えばlisp でpandas使える http://mevius.5ch.net/test/read.cgi/tech/1531587928/229
230: デフォルトの名無しさん [sage] 2020/10/16(金) 17:12:58.14 ID:PUF6e3pG lispは他の言語に寄生して生きていくしかないね pyレベルのライブラリなんて期待できないし http://mevius.5ch.net/test/read.cgi/tech/1531587928/230
231: デフォルトの名無しさん [sage] 2020/10/16(金) 18:49:22.22 ID:gzagFIoh Luaみたいな用途なら需要がある気がする http://mevius.5ch.net/test/read.cgi/tech/1531587928/231
232: デフォルトの名無しさん [sage] 2020/10/16(金) 19:26:16.21 ID:eDnfO719 時期にcommon lisp でできるようになるかも 最近numpyのcommonlisp版作るnumcl ってプロジェクトあるし http://mevius.5ch.net/test/read.cgi/tech/1531587928/232
233: デフォルトの名無しさん [sage] 2020/10/16(金) 19:47:49.92 ID:gzagFIoh カッコなし、字下げか空白だけで繋ぐlispとかあったら3レス分くらい流行るかも http://mevius.5ch.net/test/read.cgi/tech/1531587928/233
234: デフォルトの名無しさん [sage] 2020/10/16(金) 22:46:57.54 ID:uQ0QovW5 >>233 たとえば(/(+ 1 2 3 4 5) 5)はどうなるの / + 1 2 3 4 5 5 こうかな? http://mevius.5ch.net/test/read.cgi/tech/1531587928/234
235: デフォルトの名無しさん [sage] 2020/10/16(金) 22:55:51.98 ID:uQ0QovW5 無限ループ ((lambda(x)(x x))(lambda(x)(x x))) こういうのだと字下げだけでは対応できないから補助キーワードが必要になる call lambda x call x x lambda x call x x こうかな 無意味に行数が増える時点で自分的に却下だけど http://mevius.5ch.net/test/read.cgi/tech/1531587928/235
236: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/10/17(土) 01:28:29.67 ID:EbfBq8oa >>233-235 Scheme での提案として存在はする。 https://srfi.schemers.org/srfi-49/srfi-49.html でも使われているのを見たことは無いなー。 そこまで括弧が嫌いならあえて Lisp の系統の言語を使わなくても 他の選択肢はいくらでもあるわけだしな。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/236
237: デフォルトの名無しさん [sage] 2020/10/17(土) 09:40:24.61 ID:aI2oeiUv なんていうか、何も変わらんなあ… カッコがないのにカッコが見える http://mevius.5ch.net/test/read.cgi/tech/1531587928/237
238: デフォルトの名無しさん [sage] 2020/10/17(土) 13:45:30.78 ID:FBaj+4Vy AST をそのままかけるのが lisp の欠点であるし強みでもあるんだから、それが嫌なら他言語で AST をいじれるライブラリーを使ってかけって話だしね http://mevius.5ch.net/test/read.cgi/tech/1531587928/238
239: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/10/17(土) 16:11:43.70 ID:EbfBq8oa >>237 Indentation-sensitive syntax ( I 式) は S 式との間での単純な変換規則なので S 式を忘れて書けるほどの抽象度ではないという感覚はわかる。 むしろ脳内で S 式に展開しようとしてしまって変に負荷がかかる感じがある。 最初から I 式で学んでいればまた違う感覚なのかもしれないけど、 そういう学習ルートは確立してないしなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/239
240: デフォルトの名無しさん [sage] 2020/11/03(火) 18:17:12.28 ID:mQdztdM9 趣味プログラマでLispしか知らないんだけど、 みんなはやりたいことの応じて言語を使い分けてんの? http://mevius.5ch.net/test/read.cgi/tech/1531587928/240
241: デフォルトの名無しさん [sage] 2020/11/04(水) 09:41:10.74 ID:lIQnEWld >>240 そりゃ使い分ける たとえば速さや移植性を重視するときは今でもCが手放せない 一時Rustも使ってみたけどLLVMに縛られるのでCに戻った あと複雑なことをしないグループログラムだとPythonが楽 ネットを探せば必要なライブラリはだいたい手に入る http://mevius.5ch.net/test/read.cgi/tech/1531587928/241
242: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/11/04(水) 12:06:16.91 ID:gK1y19nz なんだかんだで C だけは手放せない感じはあるかな。 低レイヤを支配してるのはやっぱ C だわ。 それもこれからは一部は Go や Rust に置き換わっていくとは思うけど。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/242
243: ◆QZaw55cn4c [sage] 2020/11/04(水) 19:46:38.68 ID:P7pHA7N2 >>242 >これからは一部は Go や Rust に置き換わっていくとは思うけど。 …… C で記述された lib を Go や Rust は気軽にコールできるのですか? まさか… http://mevius.5ch.net/test/read.cgi/tech/1531587928/243
244: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/11/05(木) 17:06:21.53 ID:CL/4cqPq >>243 そりゃ当然できるよ。 呼び出すだけなら難しい手間は何もない。 ただ、 C の側のコードの保証が弱すぎる。 たとえば (C側で) malloc で確保したメモリは Go や Rust の側でいつ解放するのが 正しいのかわからないのでそのあたりのつじつま合わせは手動で頑張るしかない。 多少のラッパーを書く必要はあったりする。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/244
245: デフォルトの名無しさん [sage] 2020/11/14(土) 17:07:17.70 ID:sHUc2peo 趣味でやっててhyperspec引きながらやりたいことできるようにはなってきたんだけど、 ガッコで系統的勉強したわけじゃないし、自分でやっててもうちょっとええ方法あってもいいよなあとか思うんだけど、 なんかいい勉強方法ある?PAIPはイヤ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/245
246: デフォルトの名無しさん [sage] 2020/11/15(日) 01:33:48.20 ID:A4lXbstU SICPとCTMCPとかどうかな。 LISPじゃなくてプログラミング全般を体系的に学ぶ話になるけど。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/246
247: はちみつ餃子 ◆8X2XSCHEME [sage] 2020/11/15(日) 03:50:11.96 ID:x+/Z2zzY 日本語で書かれた Common Lisp の本はほとんど絶版になっちゃってるしなぁ……。 ガチの初心者なら Land of Lisp とかもアリかと思うけど、自分でリファレンスを調べられる程度ということになると 逆にちょうどよい書籍ってあまりない感じだよね。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/247
248: デフォルトの名無しさん [sage] 2020/11/16(月) 14:24:47.42 ID:0hfDZfuV 使ってる処理系のソースを読んだり処理系を作ってみる http://mevius.5ch.net/test/read.cgi/tech/1531587928/248
249: デフォルトの名無しさん [sage] 2020/11/16(月) 20:37:45.98 ID:ui1G6s5+ on lisp好き let over lamda変態チックで好き でも今はsmalltalkerになってしまったよ http://mevius.5ch.net/test/read.cgi/tech/1531587928/249
250: デフォルトの名無しさん [sage] 2020/11/17(火) 01:49:08.02 ID:k3t+4yVm lolのワクワク感はすごい、とりあえず写経したけど理解が追いついてないのでg!無し版を実装中 初心者だけどlisp関連の良書はかなりネットに上がってるよね、cltl2、onlisp,、lol、sicpなどなど 初心者だけど評判良さそうだからとホイホイ買ったのをネットで見付けてはヘコんでる http://mevius.5ch.net/test/read.cgi/tech/1531587928/250
251: デフォルトの名無しさん [sage] 2020/11/17(火) 01:59:11.44 ID:k3t+4yVm (大事なことなので) http://mevius.5ch.net/test/read.cgi/tech/1531587928/251
252: デフォルトの名無しさん [sage] 2020/11/28(土) 21:43:05.36 ID:IG5x2Tcu みんな、fletとかlabels使うの? 俺全然使わないんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/252
253: デフォルトの名無しさん [sage] 2020/11/29(日) 02:14:37.33 ID:JzQZ+ZwM labelsはよく使う fletはネストが深くなって読みにくくなるので嫌い http://mevius.5ch.net/test/read.cgi/tech/1531587928/253
254: デフォルトの名無しさん [sage] 2020/12/01(火) 23:12:43.95 ID:Ul2ITO5q スキーム手習いなんですけど 前の章までしっかり理解してから読み進めてくださいとのことですが 継続渡しから急に難しく感じます そこまでが理解できてないってこと?? http://mevius.5ch.net/test/read.cgi/tech/1531587928/254
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
285: デフォルトの名無しさん [sage] 2021/01/15(金) 01:43:39.29 ID:Hai3vgIl そういう後付けのボイラープーレトにはCLOSやジェネリックよりコンパイラマクロが便利ね http://mevius.5ch.net/test/read.cgi/tech/1531587928/285
286: デフォルトの名無しさん [sage] 2021/01/15(金) 21:24:11.84 ID:6113KkR6 ここでいう型定義はdeftypeのことを指しているのでしょうか http://mevius.5ch.net/test/read.cgi/tech/1531587928/286
287: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/01/16(土) 09:43:26.51 ID:uH9KWN6j Common Lisp でなら deftype とか defclass とかいったものを使うことになるんかな。 私は Scheme しか知らんからよくわからんけど。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/287
288: デフォルトの名無しさん [sage] 2021/01/17(日) 08:06:30.53 ID:MtDeBO+C >>285 嘘でしょ 人口無能が生成した文かこれ http://mevius.5ch.net/test/read.cgi/tech/1531587928/288
289: デフォルトの名無しさん [sage] 2021/01/17(日) 11:47:31.37 ID:9ajuvsmH >>288 defgeneric/methodは勢いで書き上げた触りたくないコードに機能追加するにはコード触らなくちゃならない 型の付いていない複雑なconsはどうせdestructuring-bindして振り分けるしかないんだから分けてdefmethodする利点もない define-compiler-macroなら一切既存のコードに触れる必要は無いからすごく便利だよ 既存のライブラリに手を入れたいけど、直接書き換えるとアップグレードで無かった事にされるから嫌、って時にも活躍する もちろんリファクタリング出来るならした方がいいけど、取り敢えず動けば良い時の話ね http://mevius.5ch.net/test/read.cgi/tech/1531587928/289
290: デフォルトの名無しさん [sage] 2021/01/17(日) 12:14:47.80 ID:fZnccXPg この場合、 alist はどっち側に分類されるのかな… 個人的にはだいたい alist で済ませてるけど。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/290
291: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/01/17(日) 12:16:55.56 ID:ERThMJgw Lisp 的なスタイルだとかなり短いサイクルで開発が進むので、 リファクタリングしないまま手の付けられないほどグダグダになった状態は単にサイクルを 回すのが下手なように思うんだけど。 まあ上手くいってないときでもどうにかする方法があるのはありがたい話ではあるけどさ。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/291
292: デフォルトの名無しさん [sage] 2021/01/17(日) 12:22:48.91 ID:16Ro+9sx 既存のコードには手を入れず振る舞いだけに着目して付け足して行くってスタイルはaspect oriented programmingとか言うんだっけな まあ盲で付け足してゆく事と同義ではないが http://mevius.5ch.net/test/read.cgi/tech/1531587928/292
293: デフォルトの名無しさん [sage] 2021/01/17(日) 12:36:52.37 ID:16Ro+9sx >>290 plistの方が好きだな、pprintでkey-valのカラムに並べられるし、alistが要求されれば一段flattenすれば済む consの数も同じだし好みでは ただvalがlistだと(a . (b c))=(a b c)とformatされてしまうので(a . ((b c))) = (a . (b c))と書いてる aとリストのペアなので意味的にも正しいはず http://mevius.5ch.net/test/read.cgi/tech/1531587928/293
294: 289 [sage] 2021/01/17(日) 12:38:34.26 ID:16Ro+9sx 最後は(a (b c))が正しい、.が余計だった なんかid変わってたけど289です http://mevius.5ch.net/test/read.cgi/tech/1531587928/294
295: 289 [sage] 2021/01/17(日) 12:54:42.47 ID:16Ro+9sx 真意を掴めてなかった感がある alist-pとplist-pを定義してる、よく見るし受け入れられてるイディオムだと思う deftypeしておくといい すると振り分けをdefmethodに任せる事が出来る http://mevius.5ch.net/test/read.cgi/tech/1531587928/295
296: デフォルトの名無しさん [sage] 2021/01/17(日) 22:27:16.25 ID:MtDeBO+C deftypeしたtypeはclassじゃないからdefmethodできない コンパイラマクロはプログラムの意味をかえたらいかんし パッチするなら別定義のファイルを追加でloadすれば上書きされるのでコンパイラマクロする意味0 嘘ノウハウいらないです・・・ http://mevius.5ch.net/test/read.cgi/tech/1531587928/296
297: デフォルトの名無しさん [sage] 2021/01/17(日) 23:38:13.35 ID:4VqziDiv >>296 そうだっけ、ごめん確認してきます http://mevius.5ch.net/test/read.cgi/tech/1531587928/297
298: デフォルトの名無しさん [sage] 2021/01/20(水) 01:48:17.88 ID:9Gv1v6nA alist vs plist はalistの方がassocが(lisp的な意味で)簡潔になるから?で一票 assoc[x;y] = eq[caar[y];x] → cadar[y];T → assoc[x;cdr[y]]] M式、[x→y; ...はapplyによってS式(QUOTE (COND (x y ) …に展開される http://www-formal.stanford.edu/jmc/recursive.html pdf17p evalのボトムケースでもある大事なassoc、俺にはplist版は思いつかない evenpが欲しいところだけど算術の定義がまだだし… clのcx^nrがn=4までなのもcaddarまで使ってるからだろうかね http://mevius.5ch.net/test/read.cgi/tech/1531587928/298
299: デフォルトの名無しさん [sage] 2021/01/20(水) 01:59:40.44 ID:9Gv1v6nA ffとかappqとか見慣れない面白関数出てきて面白かった first/restは単なるエイリアスでなくL-exp(線形リスプ?)における相似物としてちゃんと別に定義されてるとかも あとpairがpairlisに改称した理由とか気になってる、次は1.5マニュアル読むか 小並感 http://mevius.5ch.net/test/read.cgi/tech/1531587928/299
300: デフォルトの名無しさん [sage] 2021/01/22(金) 02:54:51.68 ID:GlnM3g/q consesのカッコのネストを無視して初めのシンボルを返すffは、左端の簡約だけで導出が決まる特性を持つコンビネータ計算(SKなど)にとても重宝する関数だよ applyを.と見なせば(論理学記法で)SKx = ((S K) x)はcons((S . K) . x)と等価 . / \ . x / \ S K (ff ((S . K) . x)) ; => S ffでSを得て、そこへのaccessor は(dfs 'S '((S . K) . x))で4行程度で実装出来る、carで潜る時にはpush 'car、cdrならpush 'car、その枝で見つからなかったときにはpopでSへのアクセサ(car car)が得られて、そのノードを公式に従ってsetf '公式すれば導出完了 lispと言えばラムダってイメージあるとおもうけど、むしろコンビータと相性が良い、特にclのラムダは細かなコントロールを求めた代償として明示的なapply/funcallが必要だからなあ あとdotprintとか定義しとくと便利ね http://mevius.5ch.net/test/read.cgi/tech/1531587928/300
301: デフォルトの名無しさん [sage] 2021/01/22(金) 08:32:42.17 ID:hEWi2BMh jmcはラムダ教徒だったろうになあ いくらlispが形式言語処理向けとはいえ、機械的に処理するには置換が面倒過ぎる http://mevius.5ch.net/test/read.cgi/tech/1531587928/301
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 557 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s