Lisp Scheme Part41 (855レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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まで使ってるからだろうかね h
ttp://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
302: デフォルトの名無しさん [sage] 2021/01/26(火) 22:54:00.78 ID:+x6NTk+g >>299 app(ly)-q(uote)?直訳するとこんな感じか (defun appq (m) (cond (null m) nil) (t (cons (list 'quote (car m))))) (appq (cdr m)) >(appq '(a b c d e)) ; ('a 'b 'c 'd 'e) (jmcの)applyは関数fをコレにconsしてS式 (#'f 'a 'b 'c ...)を得ると common lispではformの先頭は関数名かラムダじゃないとダメなのでevalには'funcallか'applyを追加でconsする必要があるので、組み込みevalを使う限りは循環定義だな http://mevius.5ch.net/test/read.cg
i/tech/1531587928/302
303: デフォルトの名無しさん [sage] 2021/01/26(火) 23:06:50.96 ID:+x6NTk+g 誤解してた M式apply[f; args]の引数はシンボルなのでS式のapplyに渡ってくるのはfunction fじゃなくてシンボルfか グローバルでdefunしたfなら多分呼べるはず、試してないけど http://mevius.5ch.net/test/read.cgi/tech/1531587928/303
304: デフォルトの名無しさん [sage] 2021/01/28(木) 03:52:37.47 ID:52TUUvk8 cons-car-cdr公理主義者への反発として最近妙に感心してしまったポエムを貼っとく https://arxiv.org/pdf/1507.05956 本当の基本関数はc、a、d、rでした paulのon lispに載ってる(explode 'bomb) → (B O M B)がハマりそうと思い、実装してみたは良いけどなんに使うんだコレ… 楽しいからいいか http://mevius.5ch.net/test/read.cgi/tech/1531587928/304
305: デフォルトの名無しさん [sage] 2021/02/06(土) 00:01:36.05 ID:7zAE1WPt cxrとconsは表裏一体なので片手落ち r•c = idになるからこそ car•cdr = c•a•r•c•d•r = ca•(r•c)•dr = cadr と読める訳であって cxr • cons= id を成り立たせるにはcxons = id となるようなo, n, sも定義せねばならない 後はまかせた http://mevius.5ch.net/test/read.cgi/tech/1531587928/305
306: デフォルトの名無しさん [sage] 2021/02/12(金) 22:14:51.72 ID:rBgVuMm7 わたばさんのところ見て知ったけど 井田昌之先生のHPで bit 1996-4、5月号、Guy L. Steele Jr.『Scheme 過去◇現在◇未来』(訳 井田昌之) などの歴史資料PDFが読めるね http://mevius.5ch.net/test/read.cgi/tech/1531587928/306
307: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/02/15(月) 14:15:58.52 ID:GNSRFiac Racket のメジャーリリース。 https://blog.racket-lang.org/2021/02/racket-v8-0.html ついに Chez Scheme の実行エンジンを組み込んだものがデフォになった。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/307
308: デフォルトの名無しさん [sage] 2021/02/16(火) 17:43:38.86 ID:05vP8Ot3 普通のやつらを超えろおじさんのarcヲチするのにちょっとracketしてるけどフレンドリーかつ尖ってるね どんどん尖ってゆけ http://mevius.5ch.net/test/read.cgi/tech/1531587928/308
309: デフォルトの名無しさん [sage] 2021/02/16(火) 18:27:11.46 ID:6gVrqubW グラハムさんは今はBel言語では http://mevius.5ch.net/test/read.cgi/tech/1531587928/309
310: デフォルトの名無しさん [sage] 2021/02/16(火) 19:02:11.29 ID:05vP8Ot3 >>309 現在の俺がもしjmcだったら?とか言い出したので見限った 今ざっと目を通しても目新しいところ、興奮するところが全然ないんだなこれが https://sep.yimg.com/ty/cdn/paulgraham/bellanguage.txt ofは便利くらいの感想しか出ない あと整数nをnth nへオバロは、逆なんじゃないかな? push n へオバロならforthライクに発展できるのに おじさんは自分に求められてるのは変態テクニックやインスピレーションだと自覚しろ http://mevius.5ch.net/test/read.cgi/
tech/1531587928/310
311: デフォルトの名無しさん [sage] 2021/02/16(火) 19:13:16.29 ID:RZ7vFu0i >>309 グレアムの方が近いはずだが http://mevius.5ch.net/test/read.cgi/tech/1531587928/311
312: デフォルトの名無しさん [sage] 2021/02/16(火) 21:26:58.99 ID:6gVrqubW >>310 言語が自分自身を書くことが出来る、ということをよりうまくやれれば ってことでしょ lisp1.5マニュアルを彼なりにアップデートしたいんだよ http://mevius.5ch.net/test/read.cgi/tech/1531587928/312
313: デフォルトの名無しさん [sage] 2021/02/17(水) 03:29:33.90 ID:PFWUQJwx 関数やマウロの実体もリストというのはだいぶん振り切れていると思うがおまえらには目新しくはないのか>bel http://mevius.5ch.net/test/read.cgi/tech/1531587928/313
314: デフォルトの名無しさん [sage] 2021/02/17(水) 03:49:42.83 ID:KZUgEKHz >>313 むしろ昔ながら/手抜きlispがそんなもんでは lit(eral)はマッカーシーのappqだし、elispは対話モードならちゃんとcarでlambdaが取れる http://mevius.5ch.net/test/read.cgi/tech/1531587928/314
315: デフォルトの名無しさん [sage] 2021/02/17(水) 04:32:37.72 ID:KZUgEKHz 後は語り尽くされたlisp1/2の分化の話になるのでその辺はググって http://mevius.5ch.net/test/read.cgi/tech/1531587928/315
316: デフォルトの名無しさん [sage] 2021/02/17(水) 04:57:15.21 ID:KZUgEKHz 補足 elの挙動は完全にバグいので忘れた方がいい、一方で関数実体はリストのサブタイプではないとヒューリスティックに判定されるのでそもそもill-defined http://mevius.5ch.net/test/read.cgi/tech/1531587928/316
317: デフォルトの名無しさん [sage] 2021/02/17(水) 18:52:29.11 ID:zk5Pyjxw アラン・ケイもそれを自分でやってみようとすることが重要だと言ってる 原始関数が変われば何もかもが変わるわけだから 変わった世界が良いのか悪いのか、は自己言及がどれだけよく出来てるかどうか ということだと思うんだけど つまり、僕らが使いやすいと感じるかどうかではなく 未来にそれに慣れた人たちがより効率の良い開発が出来るかどうか で、グレアムは自分なりにBelは良く出来てると思ってるんだろう オレにはよくわからんがw http://mevius.5ch.net/test/r
ead.cgi/tech/1531587928/317
318: はちみつ餃子 ◆8X2XSCHEME [sage] 2021/02/18(木) 00:14:56.95 ID:k6/K1ymI グレアムが現役プログラマだった時代なら実務に全振りしただろうが、今は投資する側の立場だからね。 投資に技術的な知見を活かしてはいるんだろうけど、道楽が出来るんだろう。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/318
319: デフォルトの名無しさん [sage] 2021/02/18(木) 01:58:35.80 ID:lD1LwcuS レディットで実装した人いるね 確かに使われてみなければ分からん事もたくさんあるので使ってみたい、まあ、そのうちね… 原典からlit=appqを引用(復古)するのなら、read&eval結果を示すのでなく、各々の挙動についてイメージできるように書いてほしい とりわけlitは、302のレスにあるdefunをdefmacroに置き換えた定義(その場合(lit a b c)と記述できる)であっても、 より強力なreader macroによる、定義(e.g.quote)でも実装できるのだから、なおさら http://meviu
s.5ch.net/test/read.cgi/tech/1531587928/319
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 536 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s