Lisp Scheme Part41 (809レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
63: デフォルトの名無しさん [] 2019/03/23(土) 22:34:59.05 ID:xopjuNQ8 Scheme というか、Lisp のことを少ししか分かっていないんですども、μKanren を使ってみたくて Sheme の処理系をインストールしたんですが Gauche、Guile、MT/GNU Sheme と、入れた全部 に assp がアンバウンドだと言われて動きません。 1.解決方法が分からなくて、自前で assp を書いて動かしてますが、本当はどうやったら assp が 使えるか教えてください。ライブラリをロードするのでしょうか? 2.せっかく書いたので、自前の関数の働きが本当の assp と同じなのか知りたいです。 みなさんならどのように書きますか? 最初に見つかったときに止める場合のセオリー はありますか? 書いてみた関数: (define (assp fn assoc) (let ((rtn #f)) (for-each (lambda (x) (if (not rtn) (if (fn (car x)) (set! rtn x)))) assoc) rtn)) http://mevius.5ch.net/test/read.cgi/tech/1531587928/63
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
581: デフォルトの名無しさん [] 2023/01/30(月) 19:13:37.70 ID:prACFehy そもそもダイナミックスコープの何がだめですか Emacs lispはダイナミックスコープですが、 あちこちから呼ばれてる関数を、空関数で上書きして殺すとかできて便利です Emacs lispの感覚でGIMPのスクリプト(scheme)を書こうとすると なにか何でもかんでもラッパー渡し(いちいちcarをひとつ辿る)って感じです ちなみにLispは普通の手続き型言語としてしか使ったことないです そんな奴への説教とかあったら聞きたいです マクロとか、「確かにif文を関数として実装するのは無理かもしれないし、 そういう時に使うのかな」くらいにしか解ってないです http://mevius.5ch.net/test/read.cgi/tech/1531587928/581
652: 645 [sage] 2024/04/12(金) 15:53:49.12 ID:OhyEPSVL lispの話をしよう onlisp.lispのようなオレオレutil(s).lisp/scmから引用し過ぎるのはあまり宜しくない? macroはコンパイル順の関係で引く方が問題起きにくいけど 名前がdescriptiveなのは前提として too generalであれば初見の人に読みにくいのではと思うこの頃 一方でspecificであるかぎり、手続きを分かつ働きすら無い関数抽象も読み易い: carにget-operator、cdrにget-operandsなど単なるリネームでも重用する これらはpackage内にレキシカルな意味で近傍に置くべきよね?(使い捨てならflet/labels、共用ならdefun) より一般的な小物をコーディングを楽にする為だけに引くならば、lisp書きなら定義も大体覚えてるだろう有名な小物util集(alexandria、sfri)に依存した同梱するのも(ライセンスが許しても)憚られる… このスレやSO等見ても必読書なOn Lispは知名度あるだろうから、onlisp.lisp由来のものは初見で読めてコンパクトでバランス取れた妥協点だと思って使ってるんだけど (ライセンスや再帰志向で性能難アリなので、手習いがてら書き直したクローン版、念の為) なおonlisp.lispは手続き名がいにしえのlispかよってくらいヤバいのが欠点 http://mevius.5ch.net/test/read.cgi/tech/1531587928/652
671: デフォルトの名無しさん [sage] 2024/04/15(月) 03:45:37.49 ID:KXqIDgH/ Cバックエンドで配列のviewをサポートしてるなら究極的には言語/処理系ではアルゴリズム瑕疵が無い限り有意な差はないよ ただし最速言語Fortranを半分程度使うNumpyにも優位性はある gccはじめ同じILにコンパイルされても配列多様コードでにおいてCより数倍は速い ただしNumpyは書き方に細心の注意をしないとユーザの預かり知らぬ所で勝手にディープコピーする大きな罠も そうした不透明性が嫌い 明示できるCLのFortran実装を待ち望む http://mevius.5ch.net/test/read.cgi/tech/1531587928/671
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.297s*