Lisp Scheme Part41 (809レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
135: デフォルトの名無しさん [] 2019/12/06(金) 00:43:20.37 ID:KafRVWs2 $ ros run * (+ 31000 33500 1000 2300 16500 300 1000 10100) 64700 おいおい,なんだこのメチャクチャな値 こんなんじゃ,まったく信頼できないんだが どうなってんだ しかも再現できないし $ ros version roswell 19.09.12.102(NO-GIT-REVISION) http://mevius.5ch.net/test/read.cgi/tech/1531587928/135
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
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
412: デフォルトの名無しさん [sage] 2021/07/13(火) 08:34:35.37 ID:egse1qJT named-lambdaならalexandriaにある http://mevius.5ch.net/test/read.cgi/tech/1531587928/412
419: デフォルトの名無しさん [sage] 2021/07/15(木) 04:52:42.37 ID:eqEigNI9 逆やね末尾再帰でloopを代替できるからイキって仕様からloopを消したったのがschemeやからユーザーもイキるやで http://mevius.5ch.net/test/read.cgi/tech/1531587928/419
428: デフォルトの名無しさん [sage] 2021/07/15(木) 21:29:35.37 ID:hFBqwrB0 named let 嫌いだわ、構文として紛らわしいだけ あれはgotoとでも名乗るべき http://mevius.5ch.net/test/read.cgi/tech/1531587928/428
545: デフォルトの名無しさん [] 2022/11/07(月) 12:52:44.37 ID:D9DaYQB4 木曽路的な http://mevius.5ch.net/test/read.cgi/tech/1531587928/545
558: デフォルトの名無しさん [sage] 2023/01/10(火) 03:18:54.37 ID:/i8qCr3o >>550 等価と思って良いよ 伝統的なlisp(とcl)のように(let ((x '())) ...)を(let (x) ...)と略記できない、だとか細かい差異はあるけど 百聞は一見にしかずなので、構文の対応を見るのが手っ取り早い あとeclのname collisionの件、consの例(>>553)はさすがにcontrived-exampleだと思うので、ついでにeclで破綻するように letrec/nlet/labels で定義するラベルとして、所謂accumulatorイディオムにloop(他にはlp, iterとか)を使うのが慣例だけど、eclではcl:loopと読まれるのでは?と予想 ;;; cl -- ok: cmucl, sbcl, clisp, gcl err:ecl (的中) (defun fact (n) (labels ((loop (k acc) (if (= k 0) acc (loop (1- k) (* k acc))))) (loop n 1))) ;;; scheme -- ok: guile (define (fact n) (letrec ((loop (lambda (k acc) (if (= k 0) acc (loop (1- k) (* k acc)))))) (loop n 1))) pcでテストはしたけど、スマホから手打ちなので変だったらごめん http://mevius.5ch.net/test/read.cgi/tech/1531587928/558
639: デフォルトの名無しさん [] 2024/04/08(月) 00:43:02.37 ID:skM/lEty 面白かったのでw http://mevius.5ch.net/test/read.cgi/tech/1531587928/639
657: デフォルトの名無しさん [sage] 2024/04/13(土) 22:51:10.37 ID:Vi4F3OXr 昔MSの偉い人がGNUはガンだとか言ってたな ついに自覚させたか http://mevius.5ch.net/test/read.cgi/tech/1531587928/657
676: デフォルトの名無しさん [sage] 2024/04/15(月) 11:39:03.37 ID:L/ePcET8 中間言語が同じならコーディングの瑕疵は人間工学的な問題 Cは宣言が貧弱でin/out、純粋関数、エイリアスの有無は推論頼りだから失敗すれば死ぬ ただ最近はrestrict宣言付けて回るなら重なるか推論不能な配列のエイリアス有無も指定可、難解だけど 一方で参照渡しのFortranはtaraiベンチで推論失敗すればデリファレンス地獄で死ぬわけだけど、これ解消する宣言あったっけ? むしろ宣言無しのナイーブなコーディングなら数倍どころでは済まんよ ランタイムの重いclは比類なき宣言の豊富さで静的言語にまで迫ろうと頑張ってるわけで http://mevius.5ch.net/test/read.cgi/tech/1531587928/676
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s