Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、
Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。
それ以外でもCommon Lispについての話題なら歓迎します。
ま、ゆっくりやりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
■前スレ
【入門】Common Lisp その10【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1361341876/
■Wiki
http://wiki.fdiary.net/lisp/ (id:guest pass:cl)
http://cl.cddddr.org/
http://tips.lisp-users.org/common-lisp/
【入門】Common Lisp その11【質問よろず】
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2014/09/21(日) 22:49:21.73ID:FJokPHUt2デフォルトの名無しさん
2014/09/23(火) 21:47:56.66ID:NoTzw7Td 保守っとけ
2014/09/24(水) 05:53:21.05ID:jMNIys3U
僕のチンポの保守もして欲しいです
2014/09/27(土) 22:11:12.38ID:MwPKYdSn
CommonLispってもういらない子なの?
2014/09/27(土) 22:16:56.38ID:XRggRDkd
少なくとも俺はいる
2014/09/28(日) 01:52:26.39ID:ukluat85
もういらない子だと言われ続けて数十年
2014/09/28(日) 10:02:46.51ID:3fm9b2hk
CommonLispは無くなっても困らないけどs式使う言語が否定される訳じゃ無いからなー
GUIとかI/Oもちっと近代的に再定義できないもんかの>>CommonLisp
GUIとかI/Oもちっと近代的に再定義できないもんかの>>CommonLisp
2014/09/28(日) 11:36:29.40ID:VPEqHLDK
なんでClojureはdoted pairなくしたんやろ
Symolic expressionはlinked cellが実体やないのか?
おかげでcar,cdrもないらしいやないか
それでもリスプの仲間かい!
レイプの間違いやないか?
エロいのうClojure
Symolic expressionはlinked cellが実体やないのか?
おかげでcar,cdrもないらしいやないか
それでもリスプの仲間かい!
レイプの間違いやないか?
エロいのうClojure
2014/09/28(日) 11:50:37.01ID:VPEqHLDK
consセルを次のように定義できるんやな
(define (cons car* cdr*)
(lambda (bool)
(if bool car* cdr*)))
で、かー、くだーや
(define (car cons-cell)
(cons-cell #t))
(define (cdr cons-cell)
(cons-cell #f))
わし、勉強したで
どや!
(define (cons car* cdr*)
(lambda (bool)
(if bool car* cdr*)))
で、かー、くだーや
(define (car cons-cell)
(cons-cell #t))
(define (cdr cons-cell)
(cons-cell #f))
わし、勉強したで
どや!
2014/09/28(日) 12:03:58.38ID:3fm9b2hk
2014/09/28(日) 12:36:35.15ID:iDFl5dY4
>>10
ワシにきくな!
ワシにきくな!
2014/09/28(日) 12:37:33.56ID:3fm9b2hk
2014/09/28(日) 12:50:00.26ID:iDFl5dY4
>>12
エヘヘ
エヘヘ
2014/09/29(月) 15:39:11.02ID:EGBsxWNV
lispworks欲しい
実際emacs slime sbclとどれくらい違うんだろ
実際emacs slime sbclとどれくらい違うんだろ
2014/09/29(月) 15:46:20.10ID:3Y1KoBbC
2014/09/29(月) 16:43:54.70ID:GUILLi5F
> GUI使わないならLispWorksもEmacs+Slimeですよ。
GUI使うよ
> ちなみにGUIつかうならフランツ買うべき
なんで?
GUI使うよ
> ちなみにGUIつかうならフランツ買うべき
なんで?
2014/09/29(月) 17:11:50.09ID:3Y1KoBbC
>>16
とりあえずGUIで日本語使わないならLispWorksでも大丈夫だけど、GUI使うときに付属のエディタが多バイト文字対応してない>>LispWorks
Franzはそのあたり問題ないのとGUIのユーティリティーが凄い良くできてる。
でもお金無いのでFranzは評価版だけしか使ってないけどな!
エディタさえなんとかなるならLispWorks好きなんだけどな!
とりあえずGUIで日本語使わないならLispWorksでも大丈夫だけど、GUI使うときに付属のエディタが多バイト文字対応してない>>LispWorks
Franzはそのあたり問題ないのとGUIのユーティリティーが凄い良くできてる。
でもお金無いのでFranzは評価版だけしか使ってないけどな!
エディタさえなんとかなるならLispWorks好きなんだけどな!
2014/09/29(月) 17:22:08.25ID:hqUDBNsI
lispworks6からUTF-8で表示で崩れもなく表示もできるし入力もできるよ.
common graphicsよりcapiの方が評判良いと思うけど.
lispworks7からjvmと連携するらしいよ.
common graphicsよりcapiの方が評判良いと思うけど.
lispworks7からjvmと連携するらしいよ.
2014/09/29(月) 17:22:59.09ID:GUILLi5F
やっぱり日本語がネックか
とりあえずfreeのacl使ってみる
とりあえずfreeのacl使ってみる
2014/09/29(月) 17:23:29.98ID:GUILLi5F
lispworks買うことも視野に入れてみる
2014/09/29(月) 18:42:06.20ID:3Y1KoBbC
2014/09/29(月) 18:43:04.57ID:3Y1KoBbC
>>18
jvm連携するくらいならClojreのIDEになってほしい orz
jvm連携するくらいならClojreのIDEになってほしい orz
23デフォルトの名無しさん
2014/09/30(火) 19:30:43.62ID:ReFtgmj2 Schemeに比べてCommon Lispの利点て何?
2014/09/30(火) 20:23:52.47ID:VWdpfwoz
ベタベタな手続き型プログラミングがいとも簡単にできるところじゃね?
2014/09/30(火) 20:30:05.69ID:lfWI1YhR
俺でも使えるコモンリスプってかあ
2014/09/30(火) 20:50:58.25ID:Q/T7bifx
偽と空リストが分かれてないとかnilのcar,cdrはnilとかそういうところは地味だけど
マクロ定義とかでリスト操作するときに便利
マクロ定義とかでリスト操作するときに便利
2014/09/30(火) 20:53:38.82ID:Q/T7bifx
あとバリバリに最適化してC並の性能に出来るところも気持ちいい
28デフォルトの名無しさん
2014/10/01(水) 01:31:35.21ID:ewrKIyW0 なるほど
名前空間が分かれているところは利点?
名前空間が分かれているところは利点?
2014/10/01(水) 14:35:45.12ID:aT3WVKIZ
Common LispがLisp-2であることは、俺にとっては実用上便利だが、
そうは思わない人たちもたくさんいるだろう。
そうは思わない人たちもたくさんいるだろう。
2014/10/01(水) 14:38:33.54ID:pim40rLx
let over lambdaではちょくちょくageてた
2014/10/02(木) 19:33:45.19ID:Qypu3DYD
common lispって柔軟だけどかゆい所に手が届かない所が多いね
大抵はalexandriaとかkmrclとかcl-ppcreとかsplit-sequenceとか使えばなんとかなるけど
ライブラリが散らばるのが気になる
alexandriaとかkmrclをベースに自分だけが使う一つの巨大なライブラリを作って足りない部分を追加していく方がいいのかな
大抵はalexandriaとかkmrclとかcl-ppcreとかsplit-sequenceとか使えばなんとかなるけど
ライブラリが散らばるのが気になる
alexandriaとかkmrclをベースに自分だけが使う一つの巨大なライブラリを作って足りない部分を追加していく方がいいのかな
2014/10/06(月) 01:52:15.38ID:6XAAReg7
名前空間みたいに、分けられる概念は分けるのが正義。Scheme はたぶん間違っている。
その意味では CL も副作用を分けなかったのは失敗だった。
その意味では CL も副作用を分けなかったのは失敗だった。
2014/10/06(月) 02:40:17.27ID:wbFS47kT
目が腐った
2014/10/07(火) 00:42:24.02ID:1sqcCb/K
プログラム書いるとオレオレマクロとかオレオレ関数ができてくると思うんだけど、みんなこれどこに置いてるの
2014/10/07(火) 00:45:00.37ID:nz5dcB15
sbclでコンパイルに数秒かかってて
(incf v)
(incf v)
...
をn回繰り返す式を
を(incf v n)にしたらコンパイルが一瞬で終わるようになった
最適化すごい
(incf v)
(incf v)
...
をn回繰り返す式を
を(incf v n)にしたらコンパイルが一瞬で終わるようになった
最適化すごい
2014/10/07(火) 00:46:27.10ID:nz5dcB15
最初は今書いてるプログラムソースと同じディレクトリに置いて間を見計らって
~/.sbcl/の中に置いて起動時にloadするようにしてる
~/.sbcl/の中に置いて起動時にloadするようにしてる
2014/10/07(火) 02:44:00.62ID:OarL+A4W
>>34
1. オレオレだと思っていてもalexandriaの中を探すと大抵のものはある.それを使う.
2. なければ,オレオレライブラリでもasdfで読めるようにしておく.quickproject使えば手間もかからん.
初期化ファイルで読み込ませるのはbad practice.
1. オレオレだと思っていてもalexandriaの中を探すと大抵のものはある.それを使う.
2. なければ,オレオレライブラリでもasdfで読めるようにしておく.quickproject使えば手間もかからん.
初期化ファイルで読み込ませるのはbad practice.
2014/10/07(火) 15:39:11.06ID:QLizEra8
ローカルプロジェクトはasdの設定とか面倒そうでやってなかったけど
quickproject使えば自動で生成されるんだな
前より楽になったしもっと早めに調べておけばよかった
quickproject使えば自動で生成されるんだな
前より楽になったしもっと早めに調べておけばよかった
2014/10/07(火) 19:50:29.81ID:1sqcCb/K
>>37
やっぱそんな感じなんですかね
一つのore-xandriaにいろいろ詰め込んでquicklispのlocal-projectに置いてるだけだったので、整理しようかなと思ってたんですが
参考になりました
やっぱそんな感じなんですかね
一つのore-xandriaにいろいろ詰め込んでquicklispのlocal-projectに置いてるだけだったので、整理しようかなと思ってたんですが
参考になりました
40デフォルトの名無しさん
2014/10/07(火) 20:34:41.77ID:/bWACu+C (defun fn1 (str)
(print str))
どなたか教えて下さい。
上の様な関数fn1を最適化、型宣言をして下の様な、
(defun fn2 (str)
(declare (optimize (speed 3)(debug 0)(safety 0)))
(declare (string str))
(the string (print str)))
関数fn2になりました。
マクロを使って下のfn3の様にしたいのですが
可能でしょうか。教えて下さい。
(defun fn3 (str)
(high-speed)
(var-string str)
(the-print str))
(print str))
どなたか教えて下さい。
上の様な関数fn1を最適化、型宣言をして下の様な、
(defun fn2 (str)
(declare (optimize (speed 3)(debug 0)(safety 0)))
(declare (string str))
(the string (print str)))
関数fn2になりました。
マクロを使って下のfn3の様にしたいのですが
可能でしょうか。教えて下さい。
(defun fn3 (str)
(high-speed)
(var-string str)
(the-print str))
2014/10/07(火) 21:26:20.95ID:WZBCV0KR
declareをhigh-speedやvar-stringマクロで表すのは無理
コードウォークするか別のアプローチを取るしかない
コードウォークするか別のアプローチを取るしかない
2014/10/07(火) 21:27:43.76ID:WZBCV0KR
書き込んだ後で思い出したけどリードマクロならdeclareに展開しても大丈夫だった
2014/10/07(火) 23:54:28.45ID:1sqcCb/K
(defmacro defun-opt (name args &body body)
(let ((vars (mapcar #'cadr args)))
`(defun ,name ,vars
(declare (optimize (speed 3) (debug 0) (safety 0)))
(declare ,@args)
,@body)))
(defun-opt fn ((string str))
(the string (print str)))
こんなんじゃだめなの?かなりてきとーに書いたけど
(let ((vars (mapcar #'cadr args)))
`(defun ,name ,vars
(declare (optimize (speed 3) (debug 0) (safety 0)))
(declare ,@args)
,@body)))
(defun-opt fn ((string str))
(the string (print str)))
こんなんじゃだめなの?かなりてきとーに書いたけど
2014/10/08(水) 03:05:44.37ID:TuLw9ECs
>>40
CommonLispだから最適化しなくちゃならないとかマクロ使わなくちゃならないというのはむしろ間違い。
書く手間を減らしたいということなら、変数に最適化設定を入れて#.するってことが多いかな。
quicklispで公開されてるライブラリ入手してdeclareでgrepして読んでみると良いよ。
(defvar *normal-optimize* (optimize (speed 1) (debug 3) (safety 3)))
(defvar *full-optimize* (optimize (speed 3) (debug 0) (safety 0)))
(defun fn2 (str)
(declare #.*full-optimize*)
(declare (string str))
(print str)
str)
CommonLispだから最適化しなくちゃならないとかマクロ使わなくちゃならないというのはむしろ間違い。
書く手間を減らしたいということなら、変数に最適化設定を入れて#.するってことが多いかな。
quicklispで公開されてるライブラリ入手してdeclareでgrepして読んでみると良いよ。
(defvar *normal-optimize* (optimize (speed 1) (debug 3) (safety 3)))
(defvar *full-optimize* (optimize (speed 3) (debug 0) (safety 0)))
(defun fn2 (str)
(declare #.*full-optimize*)
(declare (string str))
(print str)
str)
2014/10/08(水) 16:33:49.70ID:sWEVGgQw
型宣言とか最適化宣言って最初からつけといた方がいい?
後からつけるのは面倒そうだけど最初からつけるのも面倒だし
後からつけるのは面倒そうだけど最初からつけるのも面倒だし
2014/10/08(水) 17:24:24.76ID:fEubzyH3
>>45
コンパイラにチューニングの肝を教える為のシステムだろう?
とりあえず動くコード書いてって言うREPL大好きな人なら後からだし、設計から最適化を含む人なら最初から入れるだけじゃないの?
あんまり難しく考えるとはげちゃうぞ
コンパイラにチューニングの肝を教える為のシステムだろう?
とりあえず動くコード書いてって言うREPL大好きな人なら後からだし、設計から最適化を含む人なら最初から入れるだけじゃないの?
あんまり難しく考えるとはげちゃうぞ
2014/10/08(水) 17:37:35.42ID:WnZHVY78
最初から入れる方向で設計する方が
あとあと抜本的大改造しなくてすみそうな
あとあと抜本的大改造しなくてすみそうな
2014/10/08(水) 17:43:22.35ID:sWEVGgQw
> あとあと抜本的大改造しなくてすみそうな
やっぱり最初から宣言書いといた方が楽かな
はげるのは困るし
やっぱり最初から宣言書いといた方が楽かな
はげるのは困るし
2014/10/08(水) 17:52:50.07ID:WnZHVY78
っていうか
人に聞いて決めるようじゃだめじゃないか?
自分で判断、どう判断しようか、その方針で作っていくうちにその良し悪しを知るのも勉強
人に聞いて決めるようじゃだめじゃないか?
自分で判断、どう判断しようか、その方針で作っていくうちにその良し悪しを知るのも勉強
2014/10/08(水) 17:53:20.23ID:WnZHVY78
×どう判断しようか
○どう判断しようが
○どう判断しようが
5140です。
2014/10/08(水) 21:03:00.62ID:kqWBLcYL 40です。
みなさま、ありがとうございます。
特に41さま、42さま、43さま、44さま、
具体例を示していただいて、大変勉強になりました。
また45からの「最初か後か」の議論。
参考にいたします。
ちなみに私は、正解を探る技量が自身に無いと考えていて
ひと通り書いて速度が気になれば「後から」改変する
方法でやっています。
これだと、とりあえず必要な目先の事だけに集中できて
コードのスッキリ感が保てると思うので。
みなさま、ありがとうございます。
特に41さま、42さま、43さま、44さま、
具体例を示していただいて、大変勉強になりました。
また45からの「最初か後か」の議論。
参考にいたします。
ちなみに私は、正解を探る技量が自身に無いと考えていて
ひと通り書いて速度が気になれば「後から」改変する
方法でやっています。
これだと、とりあえず必要な目先の事だけに集中できて
コードのスッキリ感が保てると思うので。
2014/10/13(月) 19:13:35.11ID:iLY7u2fN
cl-ppcreってparse-stringして正規表現をS式にしたあと
それを使って文字列比較のクロージャを作ってるように見えるんだけど
dfaのコードが見当たらない
文字列比較のクロージャを使うやり方では有限状態機械はいらないのかな
それを使って文字列比較のクロージャを作ってるように見えるんだけど
dfaのコードが見当たらない
文字列比較のクロージャを使うやり方では有限状態機械はいらないのかな
2014/11/08(土) 12:44:37.99ID:DaCYtKLp
clojureとcommon lispとschemeのどれを学んだら良いか悩んでいます。
common lispが気になっているのですが、
モダンLispといわれるclojureの方がJVM言語ということもあって現実的に利用が容易な気もしていますし、
schemeはシンプルということで学びやすいのかなとも思います。
主観でも良いのでおすすめや優位性を教えていただけないでしょうか。よろしくお願いします。
common lispが気になっているのですが、
モダンLispといわれるclojureの方がJVM言語ということもあって現実的に利用が容易な気もしていますし、
schemeはシンプルということで学びやすいのかなとも思います。
主観でも良いのでおすすめや優位性を教えていただけないでしょうか。よろしくお願いします。
2014/11/08(土) 12:54:08.79ID:6u8ySBY5
2014/11/08(土) 13:24:51.50ID:vifAICnG
Schemeがシンプルっていうのは正しいけど誤解でもある。
コミュニティで合意できた部分だけが仕様としてまとまったので仕様だけを見るなら綺麗で単純だけど、
決着がついてない論争は膨大にあって、処理系ごとに方針の違いが大きかったりする。
きちんと理解しようとすると、思ったよりは容易でない。
でも、まあ、 Common Lisp よりは楽かな。
Clojure は JVM が先にあって Lisp 的な外観をくっつけたものなので、
言語としての構造は Lisp 的テイストよりも Java 的テイストに寄ってると思う。
いろいろと Lisp っぽくないので Lisp についての理解を深めたいなら
あまり向いてないかもしれない。
現実路線というのはその通りだと思う。
Common Lisp は良くも悪くも Lisp 代表って感じ。
コミュニティで合意できた部分だけが仕様としてまとまったので仕様だけを見るなら綺麗で単純だけど、
決着がついてない論争は膨大にあって、処理系ごとに方針の違いが大きかったりする。
きちんと理解しようとすると、思ったよりは容易でない。
でも、まあ、 Common Lisp よりは楽かな。
Clojure は JVM が先にあって Lisp 的な外観をくっつけたものなので、
言語としての構造は Lisp 的テイストよりも Java 的テイストに寄ってると思う。
いろいろと Lisp っぽくないので Lisp についての理解を深めたいなら
あまり向いてないかもしれない。
現実路線というのはその通りだと思う。
Common Lisp は良くも悪くも Lisp 代表って感じ。
2014/11/08(土) 13:41:44.59ID:SZeI55Wm
2014/11/08(土) 14:08:51.53ID:LD3zpp/h
>>53
お勧めは、common lisp
schemeはlisp矯正ギブスみたいなところがあって、他言語やってた人にはいい気がするけど、
何かアプリを作ろうとすると、ライブラリがなくて面倒だったり、処理系依存が増えたりする。
clojureはjavaのライブラリを呼び出せるので、手軽にアプリが作りやすい。まそのおかげで、GUIアプリを作るのがやり易い。
その一方で、JVMの縛りを受ける。
armのlinuxで使おうとしたら、armのJVMがあんまりよくないのか、やたらと重かった。
なんだかんだで、common lispはいいバランスだと思う。
あとlisp族初めてなら、emacsとか入力支援のある環境を使った方がいいよ。
お勧めは、common lisp
schemeはlisp矯正ギブスみたいなところがあって、他言語やってた人にはいい気がするけど、
何かアプリを作ろうとすると、ライブラリがなくて面倒だったり、処理系依存が増えたりする。
clojureはjavaのライブラリを呼び出せるので、手軽にアプリが作りやすい。まそのおかげで、GUIアプリを作るのがやり易い。
その一方で、JVMの縛りを受ける。
armのlinuxで使おうとしたら、armのJVMがあんまりよくないのか、やたらと重かった。
なんだかんだで、common lispはいいバランスだと思う。
あとlisp族初めてなら、emacsとか入力支援のある環境を使った方がいいよ。
2014/11/08(土) 14:39:56.17ID:1s+x8/Zl
>>53
お勧めはClojure、ちくせうCLスレなのに!!!!
Webアプリとかは特に
CommonLispでお気楽極楽する事もできるけど、準備が大変。(GUIやるにはFFIで根性入れるかお高い処理系買うとか)
Clojureはこの点をJVMに依存することで過去の資産を使えるのが利点。
Schemeは僕は好きじゃ無いので説明に困るからお勧めしない。
なお、WebアプリをCommonLispで作るとmade with alien technologyを実感できてコレがたまらん
お勧めはClojure、ちくせうCLスレなのに!!!!
Webアプリとかは特に
CommonLispでお気楽極楽する事もできるけど、準備が大変。(GUIやるにはFFIで根性入れるかお高い処理系買うとか)
Clojureはこの点をJVMに依存することで過去の資産を使えるのが利点。
Schemeは僕は好きじゃ無いので説明に困るからお勧めしない。
なお、WebアプリをCommonLispで作るとmade with alien technologyを実感できてコレがたまらん
2014/11/08(土) 14:53:14.38ID:bYONtWuG
abclとかいうjvm上で動くcommon lisp処理系もあるよ
2014/11/08(土) 15:36:43.34ID:ypSedYZ0
Clojure人気すぎワロタ
お前らが考えるCommon LISPの実用に足りないこと、
これさえあれば実用できるのになー(チラッチラッ
って思うことって何?
お前らが考えるCommon LISPの実用に足りないこと、
これさえあれば実用できるのになー(チラッチラッ
って思うことって何?
2014/11/08(土) 15:54:44.54ID:bYONtWuG
コルーチンを実現するためにcl-contでpythonのyieldと同じ機能付けたら
マクロ展開後の式が大きすぎるみたいなこと言われたとき
マクロ展開後の式が大きすぎるみたいなこと言われたとき
2014/11/08(土) 18:26:11.80ID:9GHPHPx+
>>53
大人気のclojureに水を指すようだが、あれは first-class continuationsをサポートしていない。初めてリスプ系の勉強するのにはやめておいたほうがいい。初めてのLisp系の勉強には俺はSchemeを勧める。
テキストはThe Little Schemerを勧める。理由は
1. collector( continuation )もやるし
2. Y-combinatorもつくるし
3. Scheme上でScheme Interpreterもつくるからだ。
ただ、あくまでS式(Symbolic expression)を扱うので、例えばリストが内部的にどういうデータ構造なのか?は別書でやることになる。
car-cdr部を持つ単位(cons Cell)を次のようにclosureとして表現して見せてるくらいだ。
(define cons
(lambda (u v)
(lambda (t)
(if t u v))))
(define car (lambda (cell) (cell #t)))
(define cdr (lambda (cell) (cell #f)))
;applications
(define a
(cons 1 2))
(car a) -〉 1
(cdr a ) -〉 2
実用アプリをは基礎を学んでからCLででもClojureででも書けばいいんでないかい。
大人気のclojureに水を指すようだが、あれは first-class continuationsをサポートしていない。初めてリスプ系の勉強するのにはやめておいたほうがいい。初めてのLisp系の勉強には俺はSchemeを勧める。
テキストはThe Little Schemerを勧める。理由は
1. collector( continuation )もやるし
2. Y-combinatorもつくるし
3. Scheme上でScheme Interpreterもつくるからだ。
ただ、あくまでS式(Symbolic expression)を扱うので、例えばリストが内部的にどういうデータ構造なのか?は別書でやることになる。
car-cdr部を持つ単位(cons Cell)を次のようにclosureとして表現して見せてるくらいだ。
(define cons
(lambda (u v)
(lambda (t)
(if t u v))))
(define car (lambda (cell) (cell #t)))
(define cdr (lambda (cell) (cell #f)))
;applications
(define a
(cons 1 2))
(car a) -〉 1
(cdr a ) -〉 2
実用アプリをは基礎を学んでからCLででもClojureででも書けばいいんでないかい。
2014/11/08(土) 18:37:47.02ID:Y28pqrHL
おれの個人的意見。
>>53
scheme は scheme を実装して勉強する言語、と言っていいと思う。実装に興味があるならお勧めできる。特に gauche あたりの実装は素晴らしく綺麗で、面白い。
Common Lisp は何かを作るためのパワフルな道具。使えるようになって損はない。力を付ければ、低レベル層から高レベル層まで扱えるのが強み。ただやや古臭いところも。
Clojure は Lisp の皮を被ったちょっと違う何か、かもしれない。モダーンですごく考えられているし、どんどん進歩していて楽しい。コミュニティも活発。
まあ一つをやったら他のことはできない、なんてことはない。どれも面白いから、どんどん手を出すといいと思う。
>>53
scheme は scheme を実装して勉強する言語、と言っていいと思う。実装に興味があるならお勧めできる。特に gauche あたりの実装は素晴らしく綺麗で、面白い。
Common Lisp は何かを作るためのパワフルな道具。使えるようになって損はない。力を付ければ、低レベル層から高レベル層まで扱えるのが強み。ただやや古臭いところも。
Clojure は Lisp の皮を被ったちょっと違う何か、かもしれない。モダーンですごく考えられているし、どんどん進歩していて楽しい。コミュニティも活発。
まあ一つをやったら他のことはできない、なんてことはない。どれも面白いから、どんどん手を出すといいと思う。
2014/11/08(土) 19:01:00.31ID:FSWBSvHq
>>53
>>62の補足
The Little Schemerでは徹底して再帰的定義でやる。なのでwhileとかでの非再帰的定期は出てこない。非再帰的的定義など(きっと)頭の良いチンパンジーでさえできるようなものはいちいち扱わない!
また、fibonacci数を求めるなどを再帰的に定義すると非再帰的定義に比べてとても処理速が遅くなることがあるが、末尾再帰の書き方も出てくるので
非再帰定義に同等の速度を再帰的定義では発揮するやり方も学べる。
具体的にはcollecterを使った再帰的定義で末尾再帰が実現される例が出てくる。
この辺りもこのテキストを勧める理由た。ただし!意外に難しいかもしれない。最近、書き込みがあったがこのテキストがわからん、あきらめたと。
どうにもチンプンカンプンなら関連しそうな概念や例についめネットなどで予備調査しながらやるといいと思う。教えてくれる人がいればそれが一番だけどね。
「何?、継続がわからん?
あのな、いいか、女とセックスしたい時にな、女を脱がしてからセックスするだろ?まず脱がしてからセックスすることを継続だ。
それにつきる。」
>>62の補足
The Little Schemerでは徹底して再帰的定義でやる。なのでwhileとかでの非再帰的定期は出てこない。非再帰的的定義など(きっと)頭の良いチンパンジーでさえできるようなものはいちいち扱わない!
また、fibonacci数を求めるなどを再帰的に定義すると非再帰的定義に比べてとても処理速が遅くなることがあるが、末尾再帰の書き方も出てくるので
非再帰定義に同等の速度を再帰的定義では発揮するやり方も学べる。
具体的にはcollecterを使った再帰的定義で末尾再帰が実現される例が出てくる。
この辺りもこのテキストを勧める理由た。ただし!意外に難しいかもしれない。最近、書き込みがあったがこのテキストがわからん、あきらめたと。
どうにもチンプンカンプンなら関連しそうな概念や例についめネットなどで予備調査しながらやるといいと思う。教えてくれる人がいればそれが一番だけどね。
「何?、継続がわからん?
あのな、いいか、女とセックスしたい時にな、女を脱がしてからセックスするだろ?まず脱がしてからセックスすることを継続だ。
それにつきる。」
2014/11/08(土) 21:45:01.32ID:pv+SsXYA
ファックよりハックがしたい
2014/11/08(土) 21:45:50.89ID:LHO3gvAT
>>53
Schemeはいい言語だけど、何かをやろうとするとちょっとめんどいことが多いかな
完全な主観で言えばCommon Lispが好きだけど、
何かやりたいことがあってそれを実現したいのならClojureが一番楽だとは思う
Schemeはいい言語だけど、何かをやろうとするとちょっとめんどいことが多いかな
完全な主観で言えばCommon Lispが好きだけど、
何かやりたいことがあってそれを実現したいのならClojureが一番楽だとは思う
2014/11/08(土) 22:04:36.91ID:nB39qpJZ
Libraries,??not framework の哲学とか http://eed3si9n.com/node/141 とかが性に合うならClojureでもいいかも
あとは括弧が(Scheme/CLに比べると)少なかったり
あとは括弧が(Scheme/CLに比べると)少なかったり
2014/11/08(土) 22:16:41.69ID:pv+SsXYA
lisp方言としてはarcが好きだけど処理系がなあ
2014/11/09(日) 17:30:33.39ID:9cWBVjQF
アクセス禁止にされてしまいレスが遅くなって申し訳ありません。
実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。
実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。
2014/11/09(日) 21:16:34.40ID:LY/WWL8I
最近思うんだけど、Lispの利点で重要だけどあまり宣伝されてないのはrepl。
書いたコードを即時に動かして結果やデータを見つつ、徐々に大きくしていくスタイルは脳汁どばどば出る。
LispマシンやCLIM系のインスペクタやデバッガも、このスタイルのためにあるように思える。
書いたコードを即時に動かして結果やデータを見つつ、徐々に大きくしていくスタイルは脳汁どばどば出る。
LispマシンやCLIM系のインスペクタやデバッガも、このスタイルのためにあるように思える。
2014/11/09(日) 21:40:49.56ID:OnT24YzJ
リスプの概念をスマートに認識できるのはスキームだけどな
ま、いいけど
バイバイ
ま、いいけど
バイバイ
2014/11/09(日) 21:41:43.14ID:OnT24YzJ
>>71
インタープリター共通の事じゃいのか
インタープリター共通の事じゃいのか
2014/11/09(日) 21:44:22.51ID:4nIud3Qa
>>71
REPL が重要なのは同意。でも、REPL はもっと進化していいと思う。SLIME でもまだ不満だ。
例えばだけど、プロファイリング結果をグラフでREPLとは別のウィンドウに表示し続けるとか。アレグロにはあったけどCLOSのクラス階層を表示してくれるとか。
REPL が重要なのは同意。でも、REPL はもっと進化していいと思う。SLIME でもまだ不満だ。
例えばだけど、プロファイリング結果をグラフでREPLとは別のウィンドウに表示し続けるとか。アレグロにはあったけどCLOSのクラス階層を表示してくれるとか。
2014/11/09(日) 22:24:39.17ID:WJCAde3H
>>74
LightTableってエディタでclojureいぢると少し近い感じになるかも
CLだとやっぱりFranzとか欲しくなる
小売りで買えないから学習用の奴しか触ったこと無いけどたしかに脳汁が出そう
LightTableってエディタでclojureいぢると少し近い感じになるかも
CLだとやっぱりFranzとか欲しくなる
小売りで買えないから学習用の奴しか触ったこと無いけどたしかに脳汁が出そう
2014/11/09(日) 22:46:55.86ID:HXAk+KxZ
slime使ってないの?
2014/11/09(日) 23:45:42.55ID:/Un9rwFK
昔の Lisp の開発環境って使ったことは無いんだけど、スクリーンショットだとか動画とか見ると、
今でいう JavaScript を Chrome の開発環境で使ってるみたいな感じで、かなりリッチなんだな。
slime なんてめじゃないぞ。 どうして退化してしまったのか…。
今でいう JavaScript を Chrome の開発環境で使ってるみたいな感じで、かなりリッチなんだな。
slime なんてめじゃないぞ。 どうして退化してしまったのか…。
2014/11/10(月) 11:24:29.22ID:7fhrA1DH
>>74
現状ライブラリとして広く共有されてるかは別としてそれなら簡単に作れると思うけどね
クラスブラウザなら素朴なのがslimeにもあるよ(require 'slime-xref-browser) M-x slime-browse-classes これもCLOS入門で試しに作ることが多い
replが重要なんじゃなくて対話性が重要ってことなんじゃないのかな
そして他の言語にかなりキャッチアップされてるから,いまとなっては大した特長でもない
現状ライブラリとして広く共有されてるかは別としてそれなら簡単に作れると思うけどね
クラスブラウザなら素朴なのがslimeにもあるよ(require 'slime-xref-browser) M-x slime-browse-classes これもCLOS入門で試しに作ることが多い
replが重要なんじゃなくて対話性が重要ってことなんじゃないのかな
そして他の言語にかなりキャッチアップされてるから,いまとなっては大した特長でもない
2014/11/10(月) 12:13:10.95ID:1g8XtIDd
柔軟性や透明性など、自由度が段違いでは
2014/11/10(月) 13:13:00.20ID:ELyMc5jq
slime-browse-classes初めて知った
クラスの継承関係を表示するだけでも便利だけどスロットとか出ないの?
クラスの継承関係を表示するだけでも便利だけどスロットとか出ないの?
2014/11/10(月) 13:30:21.54ID:7fhrA1DH
2014/11/10(月) 13:34:45.80ID:1g8XtIDd
M-x Slime-Inspect
2014/11/10(月) 14:24:04.72ID:ELyMc5jq
2014/11/10(月) 15:06:49.35ID:ELyMc5jq
slimeでさえ使い込なせてないのにそれより多機能な>>71があっても豚に真珠だな
早く豚から海豚くらいになりたい
早く豚から海豚くらいになりたい
2014/11/10(月) 21:56:18.97ID:9fx5sy2R
うぉー、LightTable かっけー!サンクス!
いろいろいじってみる。
>>78
すまん、おれの説明が悪かった。
クラスブラウザは単なる例で、もっとLispの特徴を活かした開発支援のアイディアはあると思っているんだよ。
それがあることで生産性がぐっと上がるような。
具体例が出せないが、多分一つの方向は、コードから得られる統計的データを生かすものだと思う。
いろいろいじってみる。
>>78
すまん、おれの説明が悪かった。
クラスブラウザは単なる例で、もっとLispの特徴を活かした開発支援のアイディアはあると思っているんだよ。
それがあることで生産性がぐっと上がるような。
具体例が出せないが、多分一つの方向は、コードから得られる統計的データを生かすものだと思う。
2014/11/10(月) 22:52:31.46ID:MlKubg7v
みんな そんなにreplとクラスブラウザが好きなら
Smalltalkにしちゃいなよ
Smalltalkにしちゃいなよ
2014/11/11(火) 12:06:59.77ID:VkGqc8ov
Smalltalkと同程度に、インタラクティブに、イテレーティブに、アジャイルに、GUIを含めて開発できるということだな
2014/11/11(火) 22:45:43.16ID:2Fik2SFv
Smalltalk はもう何年も前に死んでるじゃないか
2014/11/12(水) 00:49:21.53ID:6Jeysito
clojureから流れてきたものだけど、CLer的にはloopってどういうものだと認識されてる?
同じlispではあるけど、CommonLispは関数型であろうとしてるように感じないんだよね
効率のためなのかわかりやすさのためなのか、ローカルでさえあれば再代入まみれの副作用まみれっていうように感じる
loopも結局使い方によっては関数型の繰り返しっぽいっちゃぽいんだけど、どう使うにしろlispっぽくはないよね?
そのへんどう思われてるのか気になる。気軽に使っていいものなの?
同じlispではあるけど、CommonLispは関数型であろうとしてるように感じないんだよね
効率のためなのかわかりやすさのためなのか、ローカルでさえあれば再代入まみれの副作用まみれっていうように感じる
loopも結局使い方によっては関数型の繰り返しっぽいっちゃぽいんだけど、どう使うにしろlispっぽくはないよね?
そのへんどう思われてるのか気になる。気軽に使っていいものなの?
2014/11/12(水) 00:52:40.52ID:fuf0dhj5
CLはマルチパラダイム言語。 そう書いてある。
2014/11/12(水) 00:58:18.03ID:bYyH4m5K
CommonLispはマルチパラダイム言語であって、別に関数型であろうとしているわけではない
Lispは歴史的な理由で関数型と勘違いされているが、手続的にもかけるし関数的にも書けるしOO的にも書ける
状態が増えると保守性もろもろが落ちるのは真なので、そこらへん意識しつつ、適材適所で書けばいい
Lispは歴史的な理由で関数型と勘違いされているが、手続的にもかけるし関数的にも書けるしOO的にも書ける
状態が増えると保守性もろもろが落ちるのは真なので、そこらへん意識しつつ、適材適所で書けばいい
2014/11/12(水) 01:25:54.24ID:6Jeysito
2014/11/12(水) 01:37:55.86ID:/4vNcbkH
出来るだけ関数型で書くかはコーディングスタイルの話じゃないの
2014/11/12(水) 01:42:46.23ID:bYyH4m5K
概ねそんな感じでいいと思うけど、結局はどんな書き方も許されているので利用者が適宜判断する以外ないってだけかなあ
CommonLispとしての正しいスタイルというものはたぶんない
CommonLispとしての正しいスタイルというものはたぶんない
2014/11/12(水) 03:37:37.47ID:lROmcFul
Lisp族は利用者が対象に最適と考える記述を書きやすくしている
他の言語は言語作成者が最適と考える記述を書きやすくしている
他の言語は言語作成者が最適と考える記述を書きやすくしている
2014/11/12(水) 07:03:56.02ID:1phNlnMj
mapcarは知ってるけど他のmap系は知らないので
hyperspecを眺めていたら疑問に思ったので質問します。
結果を返さないし反映もされないmapcは
どんな有用性があるのでしょうか。
おそらく私の無知なのでしょうが
mapcの存在する意味、使いどころが解りません。
どなたか説明出来ませんか。
hyperspecを眺めていたら疑問に思ったので質問します。
結果を返さないし反映もされないmapcは
どんな有用性があるのでしょうか。
おそらく私の無知なのでしょうが
mapcの存在する意味、使いどころが解りません。
どなたか説明出来ませんか。
2014/11/12(水) 12:30:36.42ID:imZE8AUt
副作用
2014/11/12(水) 16:34:38.00ID:l7WlF7lN
>>96
97のとおり副作用目的で使う
用途としてはdolistと同じだがmapcはそれより昔からある
他の言語でいうとRubyのmapとeach、Schemeのmapとfor-eachのような関係
dolistがあるので存在意義が薄れた
97のとおり副作用目的で使う
用途としてはdolistと同じだがmapcはそれより昔からある
他の言語でいうとRubyのmapとeach、Schemeのmapとfor-eachのような関係
dolistがあるので存在意義が薄れた
2014/11/12(水) 17:21:10.90ID:PsXMXR/P
(dolist (obj lst) (f obj))
の場合は
(mapc #'f lst)
に出来て簡潔
の場合は
(mapc #'f lst)
に出来て簡潔
100デフォルトの名無しさん
2014/11/12(水) 22:04:39.40ID:6H3fSFab CL はマルチパラダイムなのは認めるけど、最近のパラダイムを取り込めてなくないか?
誰か haskell の型システムを完璧にCLに取り込むべきだ。(liskell は死んだっぽいし)
誰か haskell の型システムを完璧にCLに取り込むべきだ。(liskell は死んだっぽいし)
101デフォルトの名無しさん
2014/11/12(水) 22:24:25.19ID:HM1OSRRp S式で書かれたMLコードを、静的な型チェックかけたあとでLISPに変換する
ML2CLとか誰か作ってくれ
ML2CLとか誰か作ってくれ
102デフォルトの名無しさん
2014/11/12(水) 23:39:16.85ID:6Jeysito 静的型付けをもってこいということ?
103デフォルトの名無しさん
2014/11/13(木) 02:37:58.35ID:vuqKX1tf104デフォルトの名無しさん
2014/11/14(金) 14:37:50.24ID:9VbJfwoj cons cellのアドレスとそのconscellのcarのアドレスは別物ですよね?
105デフォルトの名無しさん
2014/11/14(金) 15:39:00.51ID:1eTt6dGM106デフォルトの名無しさん
2014/11/15(土) 01:18:12.55ID:RRwmbFh6 整数がいくつか入ったリストがあってそれで
リストが(1 2 3)なら"1-2-3"という文字列を作りたい
(format nil "~{~A-~}" '(1 2 3))なら"1-2-3-"になってしまう
なんか良い方法無いかな
リストが(1 2 3)なら"1-2-3"という文字列を作りたい
(format nil "~{~A-~}" '(1 2 3))なら"1-2-3-"になってしまう
なんか良い方法無いかな
107デフォルトの名無しさん
2014/11/15(土) 01:31:48.99ID:NffmTIGL (format nil "~{~a~^-~}" '(1 2 3))でどうでしょう?
108デフォルトの名無しさん
2014/11/15(土) 01:37:00.40ID:6gSgpWRh formatは変態すぎてついていけないわw
109デフォルトの名無しさん
2014/11/15(土) 01:38:11.38ID:RRwmbFh6 ありがとう
最後だけ除く指定方法があったのか
最後だけ除く指定方法があったのか
110デフォルトの名無しさん
2014/11/15(土) 05:48:51.06ID:DUX/03NY >>105
immediate valueって何が言いたいの?
* (let ((cons '#0=(#0# . nil)))
(eq cons (car cons)))
T
これのこと?
これはimmediate value って言わなくね?
immediate valueって何が言いたいの?
* (let ((cons '#0=(#0# . nil)))
(eq cons (car cons)))
T
これのこと?
これはimmediate value って言わなくね?
111デフォルトの名無しさん
2014/11/15(土) 08:18:21.88ID:s7ITBfO0 >>110
105が言いたいのは tagged pointer のことじゃないの?
105が言いたいのは tagged pointer のことじゃないの?
112デフォルトの名無しさん
2014/11/16(日) 14:40:52.03ID:HhopYCdj 質問です
(defun hoge ()
(fuga (loop for x to 100 collect x)))
みたいな関数があるとして、この関数を呼び出すたびに
(loop for x to 100 collect x)
が評価されますよね
もしそれが重い処理で、実行時に定数として扱いたい場合はどうすべきでしょうか
自分の思いつく最良の解決方法は次のようなマクロを使う方法です
(defmacro pre-eval (body)
`',(eval body))
(defun hoge ()
(fuga (pre-eval (loop for x to 100 collect x))))
もっと良い方法があるような気がするんですが、ご指南お願いします
(defun hoge ()
(fuga (loop for x to 100 collect x)))
みたいな関数があるとして、この関数を呼び出すたびに
(loop for x to 100 collect x)
が評価されますよね
もしそれが重い処理で、実行時に定数として扱いたい場合はどうすべきでしょうか
自分の思いつく最良の解決方法は次のようなマクロを使う方法です
(defmacro pre-eval (body)
`',(eval body))
(defun hoge ()
(fuga (pre-eval (loop for x to 100 collect x))))
もっと良い方法があるような気がするんですが、ご指南お願いします
113デフォルトの名無しさん
2014/11/16(日) 14:53:53.90ID:ZU8aQvb1 リードマクロ#.を使うか定数として定義しておく
114デフォルトの名無しさん
2014/11/16(日) 14:59:40.61ID:HhopYCdj115デフォルトの名無しさん
2014/11/16(日) 20:30:55.78ID:clJNFDl+ 内包表記をS式で表そうとしたら
結局、loopみたいな文法になるような気がして
loopは他の言語の内包表記のような感覚で使ってるよ
結局、loopみたいな文法になるような気がして
loopは他の言語の内包表記のような感覚で使ってるよ
116デフォルトの名無しさん
2014/11/18(火) 02:17:48.60ID:+qAFtLW3 sbcl 1.2.5ってスペシャル変数にバグある?
なんかどうにもおかしい部分があるんだけど
なんかどうにもおかしい部分があるんだけど
117デフォルトの名無しさん
2014/11/18(火) 05:43:54.14ID:6/OvObTG >>116
再現コードがないからどこがおかしいのかわからない明日も会社なのに眠れないし最低の気分だよ
再現コードがないからどこがおかしいのかわからない明日も会社なのに眠れないし最低の気分だよ
118デフォルトの名無しさん
2014/11/18(火) 13:54:56.29ID:TO5hAplY 今起きて確認したら
(let ((x y))
(declare (special x)))
とするところを
(declare (special x))
(let ((x y))
)
としてただけだった
安心して寝てくれ>>117
(let ((x y))
(declare (special x)))
とするところを
(declare (special x))
(let ((x y))
)
としてただけだった
安心して寝てくれ>>117
119デフォルトの名無しさん
2014/11/18(火) 16:00:38.09ID:fmsMXjf6 ∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
120デフォルトの名無しさん
2014/11/19(水) 23:38:38.23ID:074lLX1H マクロのマクロのデバッグ辛すぎ
なんで同じ式を生成してるのに片方だけエラー出るんだ
なんで同じ式を生成してるのに片方だけエラー出るんだ
121デフォルトの名無しさん
2014/11/20(木) 00:49:56.68ID:OJJlSD0q 順序
122デフォルトの名無しさん
2014/11/20(木) 13:58:27.72ID:o6KEcfS7 マクロを生成するマクロのデバッグがむずいのはだいたい下のどれか
・展開で副作用がある糞マクロだから
・100行以上ある糞マクロだから
・分割できるのに1passでなんでもやろうとする糞マクロだから
・`(, ,@)式の扱い方を知らない糞野郎だから
・リスト操作のいろはを知らない糞野郎だから
・マクロのデバッグ方法を知らない糞野郎だから
・展開で副作用がある糞マクロだから
・100行以上ある糞マクロだから
・分割できるのに1passでなんでもやろうとする糞マクロだから
・`(, ,@)式の扱い方を知らない糞野郎だから
・リスト操作のいろはを知らない糞野郎だから
・マクロのデバッグ方法を知らない糞野郎だから
123デフォルトの名無しさん
2014/11/20(木) 14:32:28.25ID:BES29AhP その一番下は展開されて122全文になるのか?
124デフォルトの名無しさん
2014/11/20(木) 16:50:36.53ID:BES29AhP >>120の原因は結局マクロを使ってる部分の式が間違ってただけだったんだけどね
125デフォルトの名無しさん
2014/11/20(木) 17:57:21.80ID:OJJlSD0q ・使用箇所で意味が変わる不衛生な糞マクロだから ← New!
126デフォルトの名無しさん
2014/11/20(木) 18:07:48.22ID:BES29AhP もうこのネタつまらないからいいです
127デフォルトの名無しさん
2014/11/20(木) 22:59:19.78ID:hiR3RK0/ eval-whenの使い方がいまいちわからない
てかマクロの展開とコンパイル・実行の関わりがいまいちわからない
てかマクロの展開とコンパイル・実行の関わりがいまいちわからない
128デフォルトの名無しさん
2014/11/21(金) 00:18:26.19ID:cycGFVEO Lispの闇の一端。
129デフォルトの名無しさん
2014/11/21(金) 00:21:39.70ID:XZg95LLm >>127
本よめば? 実践CommonLispにもかいてある
http://www.gigamonkeys.com/book/the-special-operators.html
随分とあかるい闇だな
本よめば? 実践CommonLispにもかいてある
http://www.gigamonkeys.com/book/the-special-operators.html
随分とあかるい闇だな
130デフォルトの名無しさん
2014/11/21(金) 00:29:52.03ID:RgbwwAKP >>127
割と理詰めで、必要性を理解できるところだよ
割と理詰めで、必要性を理解できるところだよ
131デフォルトの名無しさん
2014/11/23(日) 15:41:55.61ID:QSlTVfZV なんかC++の闇みたいだな
C言語をマルチパラダイムに使えるようにいろいろ突っ込んだのがC++で、
lisp族に同様に色々突っ込んだのがCommon Lispみたいな
C言語をマルチパラダイムに使えるようにいろいろ突っ込んだのがC++で、
lisp族に同様に色々突っ込んだのがCommon Lispみたいな
132デフォルトの名無しさん
2014/11/23(日) 15:53:17.70ID:meGdP6rU そうだよ。
133デフォルトの名無しさん
2014/11/23(日) 16:59:14.19ID:GIFgmbRX じゃあそろそろ新しい規格が欲しいな
134デフォルトの名無しさん
2014/11/23(日) 17:20:06.94ID:fhpYLSa9 そういう声はたまに聞くけどなんで誰も行動しないの?
135デフォルトの名無しさん
2014/11/23(日) 17:39:25.60ID:P0o96etQ スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
136デフォルトの名無しさん
2014/11/23(日) 17:47:32.22ID:fhpYLSa9 > スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
137デフォルトの名無しさん
2014/11/23(日) 23:17:38.64ID:c42CBMgb >>136
おいらはformatだけで挫折する自信あるぜ
おいらはformatだけで挫折する自信あるぜ
138デフォルトの名無しさん
2014/11/23(日) 23:32:32.89ID:3bQdEAIa formatはlispで書けるからいいとしてその下のwriteが大きすぎる
139デフォルトの名無しさん
2014/11/24(月) 06:08:09.05ID:hJdg5lTu 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
140デフォルトの名無しさん
2014/11/24(月) 06:09:29.38ID:hJdg5lTu 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
141デフォルトの名無しさん
2014/11/24(月) 12:58:51.41ID:utSDrll/ On Lispを読んでいるのですが、関数型インターフェースのところで
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
142デフォルトの名無しさん
2014/11/24(月) 23:22:30.44ID:n8voiuRi 静的に狭い場所で管理された副作用は速度の為に許容するって意味じゃね
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
143デフォルトの名無しさん
2014/11/24(月) 23:34:37.59ID:Ig3vRg1v ブートスクラップ…
144デフォルトの名無しさん
2014/11/24(月) 23:38:40.09ID:n8voiuRi 横文字には弱いみたい
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
145デフォルトの名無しさん
2014/11/24(月) 23:56:03.83ID:sHaIAKeh >>141
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
146デフォルトの名無しさん
2014/12/02(火) 00:48:14.88ID:oMH805i/ 教えてくれ
Emacs23.3 (On windows) に slime 入れたんだ
.emacs にはこんな感じで書いた
(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path "~/.emacs.d/site-lisp/slime")
(require 'slime-autoloads)
(slime-setup)
で、まあ動くことには動く
でもなんでか以前clispで使ったときはあった起動時アニメーションがないんだ
なんで?
Emacs23.3 (On windows) に slime 入れたんだ
.emacs にはこんな感じで書いた
(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path "~/.emacs.d/site-lisp/slime")
(require 'slime-autoloads)
(slime-setup)
で、まあ動くことには動く
でもなんでか以前clispで使ったときはあった起動時アニメーションがないんだ
なんで?
147デフォルトの名無しさん
2014/12/02(火) 00:57:02.84ID:nnpj2kBC slime-setupをhelpで見ればわかるよ
148デフォルトの名無しさん
2014/12/03(水) 11:35:40.26ID:c/4+MUqf This `cl-labels' requires `lexical-binding' to be non-nil
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
149デフォルトの名無しさん
2014/12/03(水) 14:14:49.31ID:ReckfAN/ 146 = 148なのか?
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
150148
2014/12/03(水) 20:17:25.25ID:Wu/dN4SR >146 = 148なのか?
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
151デフォルトの名無しさん
2014/12/04(木) 17:51:59.64ID:mQjd1sH/ 質問です
素人知識ながらコードの高速化を行っているのですが、例えば次のコードをdisassembleします(sbclを使ってます)
(defun my-eq (a b)
(declare (optimize (speed 3) (safety 0)))
(eq a b))
; disassembly for MY-EQ
; Size: 21 bytes
; 0CAE251A: 39FA CMP EDX, EDI ; no-arg-parsing entry point
; 1C: 740A JEQ L1
; 1E: BA0B001001 MOV EDX, 17825803
; 23: L0: 8BE5 MOV ESP, EBP
; 25: F8 CLC
; 26: 5D POP EBP
; 27: C3 RET
; 28: L1: BA27001001 MOV EDX, 17825831
; 2D: EBF4 JMP L0
すると高速化においてよろしくないとされる条件分岐命令(JEQ)が出力されます
このようなJEQは本当に高速化の脅威になりますか?
また、取り除くことはできますか?
素人知識ながらコードの高速化を行っているのですが、例えば次のコードをdisassembleします(sbclを使ってます)
(defun my-eq (a b)
(declare (optimize (speed 3) (safety 0)))
(eq a b))
; disassembly for MY-EQ
; Size: 21 bytes
; 0CAE251A: 39FA CMP EDX, EDI ; no-arg-parsing entry point
; 1C: 740A JEQ L1
; 1E: BA0B001001 MOV EDX, 17825803
; 23: L0: 8BE5 MOV ESP, EBP
; 25: F8 CLC
; 26: 5D POP EBP
; 27: C3 RET
; 28: L1: BA27001001 MOV EDX, 17825831
; 2D: EBF4 JMP L0
すると高速化においてよろしくないとされる条件分岐命令(JEQ)が出力されます
このようなJEQは本当に高速化の脅威になりますか?
また、取り除くことはできますか?
152デフォルトの名無しさん
2014/12/05(金) 02:59:30.47ID:EEY9XvTS153デフォルトの名無しさん
2014/12/05(金) 18:35:21.48ID:0LF1tZEz154SCHEME餃子 ◆8X2XSCHEME
2014/12/06(土) 01:41:19.85ID:17surw1A インライン展開すると関数コールが省略できるってのもあるし、
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
155デフォルトの名無しさん
2014/12/06(土) 20:52:17.44ID:Nd/Kweiq157デフォルトの名無しさん
2014/12/11(木) 20:00:12.67ID:URNWWvBk gcl使ってたらhandler-case,ignore-errosが無いことに気付いた
やっぱりansi準拠じゃないとansin出来んな
やっぱりansi準拠じゃないとansin出来んな
158デフォルトの名無しさん
2014/12/16(火) 16:07:51.10ID:/bfoimZs define-hogeマクロを定義するマクロはどういう名前にすればいいんだろ
define-define-hogeとかしか思い付かないけど不恰好だし
define-define-hogeとかしか思い付かないけど不恰好だし
159デフォルトの名無しさん
2014/12/16(火) 16:11:37.96ID:CudKiy/r defmacro-hoge でいいだろ
160デフォルトの名無しさん
2014/12/16(火) 16:13:21.14ID:/bfoimZs そういえばそうか
161デフォルトの名無しさん
2014/12/22(月) 20:51:38.71ID:ghZKV2ZQ allegro clの無償版って普段のlispプログラミングにどれくらい使えるかな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
162デフォルトの名無しさん
2014/12/22(月) 21:56:16.19ID:36o3vILg163デフォルトの名無しさん
2014/12/22(月) 22:35:05.70ID:18uotQck やっぱりただで使わせる気は無いのか
気分転換に環境変えてみようと思ったけど残念
気分転換に環境変えてみようと思ったけど残念
164デフォルトの名無しさん
2014/12/26(金) 14:55:55.44ID:ivhZ4+Q3 loopマクロのトークンはキーワードにするのはどういう意味があるんだ
165デフォルトの名無しさん
2014/12/27(土) 06:45:42.86ID:BPfLluBn >>164
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
166デフォルトの名無しさん
2014/12/27(土) 07:44:44.77ID:PhaXTdWk なにがインターンされるかなんて気にして書いてる人なんかいないよ、お兄ちゃん!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
167デフォルトの名無しさん
2014/12/27(土) 15:12:23.12ID:Z5TU2mXJ ライブラリ書いてる人は気にしてるとおもうけど
168デフォルトの名無しさん
2014/12/27(土) 15:12:55.73ID:8eya4d4I 補完のときにノイズになるかな
169デフォルトの名無しさん
2014/12/28(日) 01:28:27.48ID:Sd6FVmJh 外部から参照されるシンボルでもない限りファイルをコンパイルしたファイルからはシンボルは勝手に消えるからライブラリ作るやつはそんな細かいこと気にしてないだろ…
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
170デフォルトの名無しさん
2014/12/30(火) 09:14:33.10ID:O6VRzwmF loopマクロのuptoとかがキーワードでも動く、ってのは
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
171デフォルトの名無しさん
2014/12/30(火) 14:08:08.62ID:27cBYY6U 仕様で規定されてるかどうかはloopの項目に記載があるから違法か合法かは読めばわかるな。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
172デフォルトの名無しさん
2014/12/30(火) 14:27:00.81ID:vs+COFUK CLHSより引用。
loop keyword n. Trad. a symbol that is a specially recognized part of the syntax of an extended loop form.
Such symbols are recognized by their name (using string=), not by their identity;
as such, they may be in any package. A loop keyword is not a keyword.
loop keyword n. Trad. a symbol that is a specially recognized part of the syntax of an extended loop form.
Such symbols are recognized by their name (using string=), not by their identity;
as such, they may be in any package. A loop keyword is not a keyword.
173デフォルトの名無しさん
2014/12/30(火) 19:08:08.10ID:vs+COFUK >>171
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
174デフォルトの名無しさん
2015/01/13(火) 17:41:40.78ID:n8FCO54L 構造体やクラスの名前からスロットを取得する方法ってある?
175デフォルトの名無しさん
2015/01/14(水) 20:45:49.59ID:Wha2sJr8 class-slots てメソッドがあるよ。構造体に使えたかは忘れた
176デフォルトの名無しさん
2015/01/14(水) 21:08:24.00ID:1rDSBA79 >>175
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
177デフォルトの名無しさん
2015/01/15(木) 02:26:41.38ID:3CJhIHgr guiとかweb系のライブラリないの
178デフォルトの名無しさん
2015/01/16(金) 01:42:21.96ID:dM6MW5TX あるよ
179デフォルトの名無しさん
2015/01/17(土) 18:34:52.38ID:CWvWtJ6X evalとapplyの違いは何ですか?
180デフォルトの名無しさん
2015/01/17(土) 19:00:09.58ID:P4fG3Fn9 carとfuncallの違いはなんですか?
と聞いてるようなものなんだが
と聞いてるようなものなんだが
181デフォルトの名無しさん
2015/01/17(土) 19:12:25.44ID:73qLESVw182デフォルトの名無しさん
2015/01/17(土) 19:40:12.57ID:CWvWtJ6X http://qiita.com/mandel59/items/8f9111143aea94e7b363
ここで同じだと言っている人がいて気になったので
ここで同じだと言っている人がいて気になったので
183デフォルトの名無しさん
2015/01/17(土) 19:49:45.85ID:P4fG3Fn9 この板のいくつかの場所で言われてるけど
その人ちょっとおかしいんだよ
真に受けない方がいい
その人ちょっとおかしいんだよ
真に受けない方がいい
184デフォルトの名無しさん
2015/01/17(土) 20:03:49.61ID:CWvWtJ6X いえこの人がおかしいのは知ってますし真に受けるつもりもありません
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
185デフォルトの名無しさん
2015/01/17(土) 20:30:19.29ID:P4fG3Fn9186デフォルトの名無しさん
2015/01/17(土) 21:08:56.14ID:CWvWtJ6X 適用は評価の前段階みたいな感じでいいんでしょうか
187デフォルトの名無しさん
2015/01/17(土) 21:14:39.87ID:X3AOWrxV あのう、きちっとしたテキストを一冊読んだほうがいいよ
188デフォルトの名無しさん
2015/01/18(日) 02:14:00.68ID:m7MxJZlS (eval `(funcall ,f ,@args))と(apply f args)が同じっていいたいのかね?
ようわからんけど…
ようわからんけど…
189デフォルトの名無しさん
2015/01/18(日) 07:43:52.27ID:FaVyQjad evalはシンボルのリストを読み込んでその内容を実行する。
applyは既に評価されて定義された関数を適用すること。
applyは既に評価されて定義された関数を適用すること。
190デフォルトの名無しさん
2015/01/18(日) 07:49:09.26ID:oexYoD6M eval だけでいいのに何でapplyが重視されてるんだ?、と思ったら、SICPを読もう
191デフォルトの名無しさん
2015/01/18(日) 09:28:02.82ID:8C45mKK2192デフォルトの名無しさん
2015/01/19(月) 01:45:04.66ID:wgUa3gjO emacsのslimeについて質問です
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
193デフォルトの名無しさん
2015/01/23(金) 08:44:20.17ID:EcShhbHE adw-chartingって(ql:quickload :adw-charting)しただけじゃ
使えないんでしょうか
使えないんでしょうか
194デフォルトの名無しさん
2015/01/23(金) 12:42:39.31ID:iqBUzDAo >>193
エスパーだけど、サブシステムに分かれてるから
(ql:quickload :adw-charting-vecto)
しないとサンプルが動かないという意味ではそうなのでは
試した手順とマニュアル読んで分からなかった箇所を具体的に書いたら?
(adw-charting:with-pie-chart (300 200)
(adw-charting:add-slice "A" 5.0d0)
(adw-charting:add-slice "B" 2.0d0)
(adw-charting:save-file "minimal-pie-chart.png"))
は配布状態で動いたよ
エスパーだけど、サブシステムに分かれてるから
(ql:quickload :adw-charting-vecto)
しないとサンプルが動かないという意味ではそうなのでは
試した手順とマニュアル読んで分からなかった箇所を具体的に書いたら?
(adw-charting:with-pie-chart (300 200)
(adw-charting:add-slice "A" 5.0d0)
(adw-charting:add-slice "B" 2.0d0)
(adw-charting:save-file "minimal-pie-chart.png"))
は配布状態で動いたよ
195デフォルトの名無しさん
2015/01/23(金) 13:23:05.37ID:EcShhbHE196デフォルトの名無しさん
2015/01/23(金) 21:36:01.97ID:F+B+etzd 嬉しいのでチラシの裏書きます
The Little Schemer二回読了!!
勉強になった
次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます
The Little Schemer二回読了!!
勉強になった
次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます
197デフォルトの名無しさん
2015/01/23(金) 22:50:04.93ID:NpwsZqSV 再帰で考えてしまって動的計画法が使いこなせない!
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
198デフォルトの名無しさん
2015/02/07(土) 08:01:14.41ID:tz9pe5xW http://anime.scripts.mit.edu/images/mitinanime_lain3.jpg
Serial Experiments LainではLispのコードのシーンがあるらしい
Serial Experiments LainではLispのコードのシーンがあるらしい
199デフォルトの名無しさん
2015/02/07(土) 08:39:22.93ID:R2/oFkGJ Lain か…懐かしいなぁ
200デフォルトの名無しさん
2015/02/07(土) 09:32:47.61ID:FOHLYtkF Life Gameのソースっぽい
201デフォルトの名無しさん
2015/02/07(土) 09:52:15.98ID:OMRZtff8 D-WaveのOSがCommonLispってマジ?
202デフォルトの名無しさん
2015/02/07(土) 10:43:02.43ID:Ei/z8not203デフォルトの名無しさん
2015/02/07(土) 10:51:45.09ID:FOHLYtkF204デフォルトの名無しさん
2015/02/07(土) 12:02:20.85ID:saCOOwny205デフォルトの名無しさん
2015/02/07(土) 13:26:07.79ID:yKpU9aut その書き写したソース見たい
206デフォルトの名無しさん
2015/02/07(土) 13:32:26.38ID:FOHLYtkF207デフォルトの名無しさん
2015/02/07(土) 15:06:09.69ID:yKpU9aut 見れた
配列をbit単位で操作するのは効果あるのかな
配列をbit単位で操作するのは効果あるのかな
208デフォルトの名無しさん
2015/02/07(土) 15:20:36.83ID:9qdU9S5T >>207
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
209デフォルトの名無しさん
2015/02/07(土) 15:36:59.11ID:6rQaurxf 一バイトは金のひとすくい
しません、させません、ビットの無駄使い
おかげでビルも立ちました
しません、させません、ビットの無駄使い
おかげでビルも立ちました
210デフォルトの名無しさん
2015/02/08(日) 23:41:38.36ID:C4tJwi8l211デフォルトの名無しさん
2015/02/09(月) 11:04:57.10ID:inFNj6Hs212デフォルトの名無しさん
2015/02/09(月) 11:50:04.98ID:wTON1hpK 設定ミスでそうなっただけってどっかで見た気がする
213デフォルトの名無しさん
2015/02/09(月) 11:55:17.59ID:gnp8i06N オープンソースにせずとも問題を解決出来る、って意味分らないね
214デフォルトの名無しさん
2015/02/09(月) 18:29:24.33ID:Ysp4l3Zv ttp://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
215デフォルトの名無しさん
2015/02/09(月) 18:35:56.82ID:yftdnQui うぉー!
FORTLANと同席かい!!
FORTLANと同席かい!!
216デフォルトの名無しさん
2015/02/09(月) 22:47:33.62ID:JzEtMJoP FORTRANじゃあーい!!
217デフォルトの名無しさん
2015/02/09(月) 22:57:24.39ID:HcxTGLiU Ratforってあったよね
218デフォルトの名無しさん
2015/02/09(月) 23:47:36.78ID:JzEtMJoP Rational Fortran
初代プログラミング作法(programming tools)のやつね。
初代プログラミング作法(programming tools)のやつね。
219デフォルトの名無しさん
2015/02/09(月) 23:55:00.91ID:bwEZbR4B220デフォルトの名無しさん
2015/02/10(火) 17:05:14.42ID:Xy5S1/Fv >> 218
「ソフトウェア作法」ね
http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BD%9C%E6%B3%95-Brian-W-Kernighan/dp/4320021428/ref=pd_sim_b_3?ie=UTF8&refRID=00X1H3NNRVZ5P3BCDTMQ
「ソフトウェア作法」ね
http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BD%9C%E6%B3%95-Brian-W-Kernighan/dp/4320021428/ref=pd_sim_b_3?ie=UTF8&refRID=00X1H3NNRVZ5P3BCDTMQ
221デフォルトの名無しさん
2015/03/07(土) 00:42:51.80ID:1AfT/MV4 LET OVER LAMBDAを読んでいるのですが
しょっぱなで出てくるマクロdefmacro/g!が動きません。
(defmacro defmacro/g! (name args &rest body)
(let ((syms (remove-duplicates
(remove-if-not #'g!-symbol-p
(flatten body)))))
`(defmacro ,name ,args
(let ,(mapcar
(lambda (s)
`(,s (gensym ,(subseq
(symbol-name s)
2))))
syms)
,@body))))
(macroexpand-1
'(defmacro/g! nif (expr pos zero neg)
`(let ((,g!result ,expr))
(cond ((plusp ,g!result) ,pos)
((zerop ,g!result) ,zero)
(t ,neg)))))
;=>(DEFMACRO NIF (EXPR POS ZERO NEG) (LET () `(LET ((,G!RESULT ..
(flatten '`(let ,g!result))が
(SB-INT:QUASIQUOTE LET ,G!RESULT)になるので
,g!resultがremove-if-notを通り抜けられないのが理由でしょうか。
sbcl1.2.7です。動かす方法はありますか?
しょっぱなで出てくるマクロdefmacro/g!が動きません。
(defmacro defmacro/g! (name args &rest body)
(let ((syms (remove-duplicates
(remove-if-not #'g!-symbol-p
(flatten body)))))
`(defmacro ,name ,args
(let ,(mapcar
(lambda (s)
`(,s (gensym ,(subseq
(symbol-name s)
2))))
syms)
,@body))))
(macroexpand-1
'(defmacro/g! nif (expr pos zero neg)
`(let ((,g!result ,expr))
(cond ((plusp ,g!result) ,pos)
((zerop ,g!result) ,zero)
(t ,neg)))))
;=>(DEFMACRO NIF (EXPR POS ZERO NEG) (LET () `(LET ((,G!RESULT ..
(flatten '`(let ,g!result))が
(SB-INT:QUASIQUOTE LET ,G!RESULT)になるので
,g!resultがremove-if-notを通り抜けられないのが理由でしょうか。
sbcl1.2.7です。動かす方法はありますか?
222デフォルトの名無しさん
2015/03/07(土) 00:48:06.97ID:1AfT/MV4 (defun g!-symbol-p (s)
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))
223デフォルトの名無しさん
2015/03/07(土) 07:09:08.52ID:mW7RcyXy コードコピペしたらちゃんと動いたけど
flattenが間違ってんじゃないかな
flattenが間違ってんじゃないかな
224デフォルトの名無しさん
2015/03/07(土) 16:01:02.06ID:yXgYIHFE 試しにwindows版のsbcl1.2.7入れてやってみたが
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
225デフォルトの名無しさん
2015/03/07(土) 16:17:29.95ID:IuS2RJP4 clisp+alexandria:flattenでやってみたけど動くよ
226デフォルトの名無しさん
2015/03/07(土) 16:50:40.73ID:yXgYIHFE debianのsbcl1.0.57.0ではちゃんと動く
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
227デフォルトの名無しさん
2015/03/07(土) 19:54:37.09ID:sXXhs6bf228デフォルトの名無しさん
2015/03/08(日) 14:36:36.18ID:AqwQTNqO Common Lisp 素人です.
SSL って cl+ssl が標準的なんですかね?
以下のコードが動かないんですが, これはうちの環境が悪いんでしょうか?
```
(ql:quickload :usocket)
(ql:quickload :cl+ssl)
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock))))
(unwind-protect
(progn
(format sock-stream "? CAPABILITY"))
(usocket:socket-close sock)))
```
Debugger:
```
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-STRING (3)>
when called with arguments
(#<CL+SSL::SSL-STREAM
for #<FD-STREAM
for "socket 192.168.1.60:46384, peer: 64.233.187.109:993"
{1005B13083}>>
"? CAPABILITY" 0 NIL).
[Condition of type SIMPLE-ERROR]
```
cl+ssl の streams.lisp では stream-write-byte についてしか defmethod してないけど,
普通はこれで動くもんなんです?
SSL って cl+ssl が標準的なんですかね?
以下のコードが動かないんですが, これはうちの環境が悪いんでしょうか?
```
(ql:quickload :usocket)
(ql:quickload :cl+ssl)
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock))))
(unwind-protect
(progn
(format sock-stream "? CAPABILITY"))
(usocket:socket-close sock)))
```
Debugger:
```
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-STRING (3)>
when called with arguments
(#<CL+SSL::SSL-STREAM
for #<FD-STREAM
for "socket 192.168.1.60:46384, peer: 64.233.187.109:993"
{1005B13083}>>
"? CAPABILITY" 0 NIL).
[Condition of type SIMPLE-ERROR]
```
cl+ssl の streams.lisp では stream-write-byte についてしか defmethod してないけど,
普通はこれで動くもんなんです?
229デフォルトの名無しさん
2015/03/08(日) 14:39:57.84ID:4UYhxwse SBCLのバッククォートは構造体に変換されるようになったから
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
230228
2015/03/08(日) 19:54:56.42ID:AqwQTNqO 解決したので報告です. :external-format を指定して flexi-streams を使えば良いようです.
```
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock) :external-format '(:latin-1 :eol-style :crlf))))
(unwind-protect
(progn
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
(format sock-stream "? CAPABILITY~%")
(force-output sock-stream)
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
)
(usocket:socket-close sock)))
```
=>
```
* OK Gimap ready for requests from xxx.xxx.xxx.xxx hogehoge
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
```
```
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock) :external-format '(:latin-1 :eol-style :crlf))))
(unwind-protect
(progn
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
(format sock-stream "? CAPABILITY~%")
(force-output sock-stream)
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
)
(usocket:socket-close sock)))
```
=>
```
* OK Gimap ready for requests from xxx.xxx.xxx.xxx hogehoge
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
```
231デフォルトの名無しさん
2015/03/17(火) 01:48:34.28ID:gpmCn1O6 (変数 値)のリストと式が与えられた状態で、変数を値に束縛した環境で式を評価したいのですが、良い方法がわかりません
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
232デフォルトの名無しさん
2015/03/17(火) 10:47:28.60ID:Zf13xXA9 (let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(eval form)))
とかかなあ
もしくはformを関数にしてしまうのがいいのかな
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(let ((thunk (coerce `(lambda () ,form) 'function)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(funcall thunk))))
bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(eval form)))
とかかなあ
もしくはformを関数にしてしまうのがいいのかな
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(let ((thunk (coerce `(lambda () ,form) 'function)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(funcall thunk))))
bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
233デフォルトの名無しさん
2015/03/17(火) 10:48:46.17ID:Zf13xXA9 なぜか変な絵文字が入った…
234デフォルトの名無しさん
2015/03/17(火) 13:59:09.21ID:gpmCn1O6 >>232
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます
ある言語のサブセットを作ってます
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます
ある言語のサブセットを作ってます
235デフォルトの名無しさん
2015/03/26(木) 19:32:41.80ID:atSKhz5s 質問です。以下の、
私家版、Common Lisp プログラマのレベル10
http://www.reddit.com/r/lisp_ja/comments/30cfn0/%E7%A7%81%E5%AE%B6%E7%89%88common_lisp_%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB10/
の中のレベル3に、
「fletやlabelsによるローカル関数定義を多用」が、
「Common Lispでは名前空間の汚染はあまり気にしなくて良いので多用する必要はない」とレスされ、
るそうですが、
なぜ気にしなくて良いのですか?
私家版、Common Lisp プログラマのレベル10
http://www.reddit.com/r/lisp_ja/comments/30cfn0/%E7%A7%81%E5%AE%B6%E7%89%88common_lisp_%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB10/
の中のレベル3に、
「fletやlabelsによるローカル関数定義を多用」が、
「Common Lispでは名前空間の汚染はあまり気にしなくて良いので多用する必要はない」とレスされ、
るそうですが、
なぜ気にしなくて良いのですか?
236デフォルトの名無しさん
2015/03/26(木) 20:09:27.36ID:7QpaiPyE >>235
comon lisp よりも scheme の方がよさそーだ‥
comon lisp よりも scheme の方がよさそーだ‥
237デフォルトの名無しさん
2015/03/26(木) 21:35:12.89ID:RYFxX3Lv >>235
なんかコイツ自身レベルが低そうだ
なんかコイツ自身レベルが低そうだ
238デフォルトの名無しさん
2015/03/31(火) 15:33:38.54ID:Wn1BJkY4239デフォルトの名無しさん
2015/04/03(金) 04:59:16.54ID:OpTcNNTw 元スレで作った人に聞けばいいのでは…
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
240デフォルトの名無しさん
2015/04/04(土) 21:18:43.12ID:+yfNqqsV 初歩的な質問ですいません。
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?
241デフォルトの名無しさん
2015/04/04(土) 21:30:16.17ID:zaPqarn1 sudo yum install sbcl.x86_64
じゃだめなん?
じゃだめなん?
242デフォルトの名無しさん
2015/04/08(水) 14:04:17.18ID:0NyqAI50 Eclipse Common Lisp がオープンソース化された話があるみたいだけど、
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。
243ドリル優子
2015/04/20(月) 17:48:30.95ID:pJtoLIOS244デフォルトの名無しさん
2015/04/20(月) 17:51:10.30ID:6c0j1ZNC >>243
しねかす
しねかす
245デフォルトの名無しさん
2015/04/20(月) 18:27:45.45ID:BMKjvfkW こんにちわ、これってどういう場面で使うんでしょうか??
関わりがないってことは特に知る必要ないんでしょうか?
関わりがないってことは特に知る必要ないんでしょうか?
246デフォルトの名無しさん
2015/05/04(月) 09:54:28.68ID:1poVLIgC247デフォルトの名無しさん
2015/05/04(月) 14:43:15.18ID:wppJPNh0248デフォルトの名無しさん
2015/06/05(金) 01:19:51.77ID:06+5DuOz http://www.infoq.com/jp/news/2015/06/lispworks-mobile-runtime
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい
249デフォルトの名無しさん
2015/06/14(日) 21:41:14.46ID:DbwnGjGJ clispって5年もバージョンアップないんだね
もう終わりか
もう終わりか
250デフォルトの名無しさん
2015/06/18(木) 21:22:38.22ID:WKPwU09x つい最近、lisp始めたんですけど、
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
251デフォルトの名無しさん
2015/06/19(金) 02:49:41.26ID:xcKv4OTq >>250
処理系によって違ってくるから何を使ってるか教えて
処理系によって違ってくるから何を使ってるか教えて
252デフォルトの名無しさん
2015/06/19(金) 12:32:36.15ID:sjap9hEB253デフォルトの名無しさん
2015/06/20(土) 12:18:47.33ID:hw0FsWHq windowsのclispでcl-opencvって使えますか?
254デフォルトの名無しさん
2015/07/06(月) 23:11:46.67ID:gzHSRIru 今日からLisp始めた阿呆です。本当に初歩的な質問をしたいのですが、よろしいでしょうか。
わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。
というファイルを
(((#\わ #\た #\し #\は) (#\太 #\郎) (#\で #\す #\。)) ((#\趣 #\味 #\は) (#\2 #\ち #\ゃ #\ん #\ね #\る) (#\で #\す #\。))
((#\L #\i #\s #\p #\初 #\心 #\者) (#\で #\す #\。)))
このようなリストを吐き出す関数を書きたいのですが、本当に知ろうとゆえ、困ってます。
一応書いてみたのが以下のものです。
(defun test-parse (fname)
(with-open-file (in fname :direction :input)
(let (tmp (w ()) (l ()) (s ()))
(loop for tmp = (read-char in nil)
while tmp
do (cond ((eql tmp #\Space) (push (reverse w) l) (setf w nil))
((eql tmp #\Newline) (push (reverse w) l) (setf w nil) (push (reverse l) s) (setf l nil))
(t (push tmp w))
))
(push (reverse w) l)
(push (reverse l) s)
(reverse s))))
どうすれば、かっこいいLisperになれますか。
説教してください。頓首。
わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。
というファイルを
(((#\わ #\た #\し #\は) (#\太 #\郎) (#\で #\す #\。)) ((#\趣 #\味 #\は) (#\2 #\ち #\ゃ #\ん #\ね #\る) (#\で #\す #\。))
((#\L #\i #\s #\p #\初 #\心 #\者) (#\で #\す #\。)))
このようなリストを吐き出す関数を書きたいのですが、本当に知ろうとゆえ、困ってます。
一応書いてみたのが以下のものです。
(defun test-parse (fname)
(with-open-file (in fname :direction :input)
(let (tmp (w ()) (l ()) (s ()))
(loop for tmp = (read-char in nil)
while tmp
do (cond ((eql tmp #\Space) (push (reverse w) l) (setf w nil))
((eql tmp #\Newline) (push (reverse w) l) (setf w nil) (push (reverse l) s) (setf l nil))
(t (push tmp w))
))
(push (reverse w) l)
(push (reverse l) s)
(reverse s))))
どうすれば、かっこいいLisperになれますか。
説教してください。頓首。
255デフォルトの名無しさん
2015/07/06(月) 23:30:52.25ID:DLd6IvQj かっこいいかは知らんけど、split-sequenceを使うと、
(defun omanko (src)
(mapcar (lambda (s)
(mapcar (lambda (x) (coerce x 'list))
(split-sequence #\Space s)))
(split-sequence #\Newline src)))
(omanko "わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。")
↓CLISPでの結果
(((#\HIRAGANA_LETTER_WA #\HIRAGANA_LETTER_TA #\HIRAGANA_LETTER_SI #\HIRAGANA_LETTER_HA) (#\U592A #\U90CE)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\U8DA3 #\U5473 #\HIRAGANA_LETTER_HA)
(#\FULLWIDTH_DIGIT_TWO #\HIRAGANA_LETTER_TI #\HIRAGANA_LETTER_SMALL_YA #\HIRAGANA_LETTER_N #\HIRAGANA_LETTER_NE
#\HIRAGANA_LETTER_RU)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\L #\i #\s #\p #\U521D #\U5FC3 #\U8005) (#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP)))
(defun omanko (src)
(mapcar (lambda (s)
(mapcar (lambda (x) (coerce x 'list))
(split-sequence #\Space s)))
(split-sequence #\Newline src)))
(omanko "わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。")
↓CLISPでの結果
(((#\HIRAGANA_LETTER_WA #\HIRAGANA_LETTER_TA #\HIRAGANA_LETTER_SI #\HIRAGANA_LETTER_HA) (#\U592A #\U90CE)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\U8DA3 #\U5473 #\HIRAGANA_LETTER_HA)
(#\FULLWIDTH_DIGIT_TWO #\HIRAGANA_LETTER_TI #\HIRAGANA_LETTER_SMALL_YA #\HIRAGANA_LETTER_N #\HIRAGANA_LETTER_NE
#\HIRAGANA_LETTER_RU)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\L #\i #\s #\p #\U521D #\U5FC3 #\U8005) (#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP)))
256254
2015/07/09(木) 18:43:04.87ID:dOwpf5X7257254
2015/07/10(金) 07:34:53.35ID:f1nU5bVE いろいろ参考書を買ったけど、
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
258デフォルトの名無しさん
2015/07/13(月) 12:29:38.83ID:mO7PTTVX あるサイトに
(reduce #'+ '(1 2 3))
;=> 7
6じゃないのですか?
(reduce #'+ '(1 2 3))
;=> 7
6じゃないのですか?
259デフォルトの名無しさん
2015/07/13(月) 23:25:59.50ID:RdQReua/ >>258
そのサイトの管理者なりに教えてあげればいいじゃない
そのサイトの管理者なりに教えてあげればいいじゃない
260デフォルトの名無しさん
2015/07/15(水) 02:32:01.68ID:UqDQ6ToJ >>258
6だよ‥アスペかよw
6だよ‥アスペかよw
261デフォルトの名無しさん
2015/07/19(日) 21:44:01.49ID:iFwTTRmf 最近はcl freaks に出ている人達を中心にcommon lispが元気ある感じするよね
262名無しのプログラマ
2015/08/09(日) 17:59:36.15ID:Icb40LOY 再帰の魅力
263デフォルトの名無しさん
2015/09/15(火) 00:43:38.55ID:1sxk5v5N lispworks proかったった。
買ったからには勉強せねば。
実はまだlispなんにも知らん。
買ったからには勉強せねば。
実はまだlispなんにも知らん。
264はちみつ餃子 ◆8X2XSCHEME
2015/09/15(火) 05:52:09.24ID:e2MtLkqs 知らんのにいきなり買うとか豪儀やな
265デフォルトの名無しさん
2015/09/15(火) 10:02:52.02ID:qUwxVhtE ならリスプの統合環境と言っていいか、そこは怪しいが
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな
266デフォルトの名無しさん
2015/09/22(火) 22:58:08.35ID:zMYL44aC (defun fact (n)
(cond ((=n 0) 1)
(t (* (fact (1 - n))
n ))))
で
*** - SYSTEM::%EXPAND-FORM: invalid form (1 - N)
The following restarts are available:
ABORT :R1 Abort debug loop
ABORT :R2 Abort debug loop
ABORT :R3 Abort debug loop
ABORT :R4 Abort debug loop
ABORT :R5 Abort debug loop
ABORT :R6 Abort debug loop
ABORT :R7 Abort debug loop
ABORT :R8 Abort debug loop
ABORT :R9 Abort main loop
とエラーがでます。どうしてなのでしょう?教えてください。
お願いします。
(cond ((=n 0) 1)
(t (* (fact (1 - n))
n ))))
で
*** - SYSTEM::%EXPAND-FORM: invalid form (1 - N)
The following restarts are available:
ABORT :R1 Abort debug loop
ABORT :R2 Abort debug loop
ABORT :R3 Abort debug loop
ABORT :R4 Abort debug loop
ABORT :R5 Abort debug loop
ABORT :R6 Abort debug loop
ABORT :R7 Abort debug loop
ABORT :R8 Abort debug loop
ABORT :R9 Abort main loop
とエラーがでます。どうしてなのでしょう?教えてください。
お願いします。
267デフォルトの名無しさん
2015/09/22(火) 23:17:05.48ID:52HAR6EJ スペースが入ってなかったり入っていたり
(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))
(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))
268デフォルトの名無しさん
2015/09/22(火) 23:27:01.08ID:zMYL44aC269はちみつ餃子 ◆8X2XSCHEME
2015/09/23(水) 01:17:09.38ID:Z8UtHxkJ270デフォルトの名無しさん
2015/09/23(水) 02:22:31.73ID:2zCL7K2h >>269さん
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
271デフォルトの名無しさん
2015/09/23(水) 02:25:45.54ID:2zCL7K2h >>263
30万円くらいですか。すごいですね
30万円くらいですか。すごいですね
272はちみつ餃子 ◆8X2XSCHEME
2015/09/23(水) 03:31:44.34ID:Z8UtHxkJ273デフォルトの名無しさん
2015/09/23(水) 08:07:48.78ID:+YPBfVMM >>270
1- って関数名ですよ?
クォートされていないリストは
一つ目の要素が関数名、以後が引数として評価されます。
例
(1- n)
1- は関数名、nは引数 (注:関数1- は引数から1引いた数を返す関数)
参考;クォートされてるリスト例
'(* 2 3 ) (quote (* 2 3))
解説 (* 2 3 )はクォートされているので関数として評価されない
あなたの初めの書き方
(1 - n)
だと関数名は1で、- と n の2つの引数をもつことになる(正確に言えば、引数- と 引数n に 関数1を適用する、となります)
すると関数1は未定義だよと言われちゃいますね
同様に
(=n 0)だと
関数名はn= で引数は0となります。
ここでも関数=nは未定義といわれちゃいます
C言語のフリーフォーマットとはことなり、LispではスペースがS式での要素の区切り(デリミッター)になります。
スペースで分ければ2つの要素になるし
スペースを消して繋げればひとつの要素になってしまいます。
ちなみに(=n 0)が正しい適用かどうかは関数定義されてるかどうかによります。もし
(defun =n (x )
(zerop x))
と定義されていれば
(=n 0) => t
ですね
1- って関数名ですよ?
クォートされていないリストは
一つ目の要素が関数名、以後が引数として評価されます。
例
(1- n)
1- は関数名、nは引数 (注:関数1- は引数から1引いた数を返す関数)
参考;クォートされてるリスト例
'(* 2 3 ) (quote (* 2 3))
解説 (* 2 3 )はクォートされているので関数として評価されない
あなたの初めの書き方
(1 - n)
だと関数名は1で、- と n の2つの引数をもつことになる(正確に言えば、引数- と 引数n に 関数1を適用する、となります)
すると関数1は未定義だよと言われちゃいますね
同様に
(=n 0)だと
関数名はn= で引数は0となります。
ここでも関数=nは未定義といわれちゃいます
C言語のフリーフォーマットとはことなり、LispではスペースがS式での要素の区切り(デリミッター)になります。
スペースで分ければ2つの要素になるし
スペースを消して繋げればひとつの要素になってしまいます。
ちなみに(=n 0)が正しい適用かどうかは関数定義されてるかどうかによります。もし
(defun =n (x )
(zerop x))
と定義されていれば
(=n 0) => t
ですね
274デフォルトの名無しさん
2015/09/27(日) 22:01:13.24ID:BTnSG6Xd windowsでclispとquicklispでcffiを触ってみようと思ったんですが
(cffi:define-foreign-library test
(:windows "test.dll")
(t (:default "test")))
(cffi:use-foreign-library test)
で、testが開けません
パスは正しいし他の言語からもリンクできるライブラリですが、
何処がおかしいのでしょうか?
(cffi:define-foreign-library test
(:windows "test.dll")
(t (:default "test")))
(cffi:use-foreign-library test)
で、testが開けません
パスは正しいし他の言語からもリンクできるライブラリですが、
何処がおかしいのでしょうか?
275デフォルトの名無しさん
2015/09/29(火) 11:03:45.13ID:KkwgeqRl276274
2015/10/01(木) 02:50:50.32ID:tesABx2F 自己レスですが、CLISPで散々いろいろ試したけどどうにもならなかったので
SBCLに変えてみたらまともに動くようになりましたので報告
SBCLに変えてみたらまともに動くようになりましたので報告
277デフォルトの名無しさん
2015/10/03(土) 13:14:55.68ID:IK0Y+UBj perl の perldoc
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'
278デフォルトの名無しさん
2015/10/03(土) 13:24:00.92ID:8AFtPGV4 xyzzy上でで良ければ
reference.xmlから
reference.txtや reference.chm使って補完できるよ
足りない関数名ややシンボル名は静的補完ファイルに登録するか、reference.*に追加するか
reference.xmlから
reference.txtや reference.chm使って補完できるよ
足りない関数名ややシンボル名は静的補完ファイルに登録するか、reference.*に追加するか
279デフォルトの名無しさん
2015/10/03(土) 13:25:24.46ID:8AFtPGV4 あ、ヘルプもね
280デフォルトの名無しさん
2015/10/04(日) 00:50:00.79ID:FtwpBXng >>278,279
ひょっとして >277当てか?
後出しになってしまって申し訳ない
cygwin clisp と Linux clisp を使っています
SLIMEの方はそれぞれ NTEmacs と Linuxのaptitude で入る方のemacs
だから aptitude apt-cyg svn git wget などで落としてインストールし
zsh上で pydoc ... 等と同様に呼び出したい
ひょっとして >277当てか?
後出しになってしまって申し訳ない
cygwin clisp と Linux clisp を使っています
SLIMEの方はそれぞれ NTEmacs と Linuxのaptitude で入る方のemacs
だから aptitude apt-cyg svn git wget などで落としてインストールし
zsh上で pydoc ... 等と同様に呼び出したい
281デフォルトの名無しさん
2015/10/04(日) 08:39:36.15ID:QJUtVfl7 >>280
>>277のリンク先(HyperSpec)のことなら、ダウンロードはLispWorksのサイトのこのページから。
http://www.lispworks.com/documentation/common-lisp.html
"This HTML document may, subject to certain conditions, be downloaded for use at other locations."
という段落の "downloaded" が、HyperSpecのHTMLファイル群を固めたTar書庫へのリンク。
ローカルに置いたHyperSpecを「zsh上で pydoc ... 等と同様に」参照できるコマンドは多分無いと思うけど、
EmacsのSLIMEからブラウザで開くことは出来る(シンボルの上で C-c C-d h)。
https://common-lisp.net/project/slime/doc/html/Documentation.html
設定はこんな感じ(展開したHyperSpecディレクトリをホームディレクトリに置いた場合):
;; HyperSpecのディレクトリ(URL形式)。
(setq common-lisp-hyperspec-root (concat "file://" (expand-file-name "~/HyperSpec/")))
;; HyperSpecを `eww' (Emacs 24.4 以降に内蔵のウェブブラウザ) で開く設定。
;; (それ以外のURLはデフォルトのブラウザで開く)
(setq browse-url-browser-function
`((,(concat "^" common-lisp-hyperspec-root) . eww-browse-url)
("." . browse-url-default-browser)))
>>277のリンク先(HyperSpec)のことなら、ダウンロードはLispWorksのサイトのこのページから。
http://www.lispworks.com/documentation/common-lisp.html
"This HTML document may, subject to certain conditions, be downloaded for use at other locations."
という段落の "downloaded" が、HyperSpecのHTMLファイル群を固めたTar書庫へのリンク。
ローカルに置いたHyperSpecを「zsh上で pydoc ... 等と同様に」参照できるコマンドは多分無いと思うけど、
EmacsのSLIMEからブラウザで開くことは出来る(シンボルの上で C-c C-d h)。
https://common-lisp.net/project/slime/doc/html/Documentation.html
設定はこんな感じ(展開したHyperSpecディレクトリをホームディレクトリに置いた場合):
;; HyperSpecのディレクトリ(URL形式)。
(setq common-lisp-hyperspec-root (concat "file://" (expand-file-name "~/HyperSpec/")))
;; HyperSpecを `eww' (Emacs 24.4 以降に内蔵のウェブブラウザ) で開く設定。
;; (それ以外のURLはデフォルトのブラウザで開く)
(setq browse-url-browser-function
`((,(concat "^" common-lisp-hyperspec-root) . eww-browse-url)
("." . browse-url-default-browser)))
282デフォルトの名無しさん
2015/10/04(日) 15:04:33.13ID:FtwpBXng283282
2015/10/06(火) 16:16:19.87ID:QezNm1t4 localリファレンス用のzshコマンドのために書いた
#!/usr/bin/env python3
import urllib.request
import re
import os
import subprocess
import sys
# USAGE: this-script.py or this-script.py [Symbol]
ref_dir = os.environ["HOME"] + "/lib/HyperSpec/"
ref_top_dir = ref_dir + "/Front/X_AllSym.htm"
if len(sys.argv) == 1:
to_Symbol_list = "w3m " + ref_top_dir
subprocess.call(to_Symbol_list, shell=True)
elif len(sys.argv) == 2:
top_as_html = "file://" + ref_top_dir
with urllib.request.urlopen(top_as_html) as res:
html = res.read()
is_Symbol = 'Body/.+?#' + sys.argv[1] + '"'
url_suffix = re.sub("#.*", "",
"".join(re.findall(is_Symbol, html.decode())))
if url_suffix:
do_w3m = "w3m " + ref_dir + url_suffix
subprocess.call(do_w3m, shell=True)
else:
print("The symbol was not found.")
else:
print("Please input 0 or 1 Symbol of Lisp.")
#!/usr/bin/env python3
import urllib.request
import re
import os
import subprocess
import sys
# USAGE: this-script.py or this-script.py [Symbol]
ref_dir = os.environ["HOME"] + "/lib/HyperSpec/"
ref_top_dir = ref_dir + "/Front/X_AllSym.htm"
if len(sys.argv) == 1:
to_Symbol_list = "w3m " + ref_top_dir
subprocess.call(to_Symbol_list, shell=True)
elif len(sys.argv) == 2:
top_as_html = "file://" + ref_top_dir
with urllib.request.urlopen(top_as_html) as res:
html = res.read()
is_Symbol = 'Body/.+?#' + sys.argv[1] + '"'
url_suffix = re.sub("#.*", "",
"".join(re.findall(is_Symbol, html.decode())))
if url_suffix:
do_w3m = "w3m " + ref_dir + url_suffix
subprocess.call(do_w3m, shell=True)
else:
print("The symbol was not found.")
else:
print("Please input 0 or 1 Symbol of Lisp.")
284デフォルトの名無しさん
2015/10/18(日) 00:46:38.25ID:tKz57RTt 話題になってないけど、
コンスセル原器が廃止されるらしいぞ
コンスセル原器が廃止されるらしいぞ
285デフォルトの名無しさん
2015/10/18(日) 00:53:59.90ID:evkMpRYg え?
286デフォルトの名無しさん
2015/10/18(日) 08:54:54.56ID:1LMJTfhY ttps://www.jwz.org/blog/2015/10/cons-conflict-resolved-at-last/
これだね。メートル原器もなくなると言うし、
時代の流れを感じるね
これだね。メートル原器もなくなると言うし、
時代の流れを感じるね
287デフォルトの名無しさん
2015/10/19(月) 22:17:19.25ID:v3Pllrwr コンス原器とか言ってるのはもちろんネタだからな、わかってると思うけど
メートルの定義が科学的なものに置き換えられるから、そのパロディだからな?
メートルの定義が科学的なものに置き換えられるから、そのパロディだからな?
288デフォルトの名無しさん
2015/10/20(火) 12:37:44.25ID:z0N4BuQy 原器は力が溢れている。 元気だから。 なんちゃってーー
289デフォルトの名無しさん
2015/10/21(水) 00:22:44.88ID:vQvk97RO 原器があればなんでもできる!
290デフォルトの名無しさん
2015/10/21(水) 02:26:28.45ID:FfxQn45L ネタだったのか
どういうものなんだろうと唸りながら考えていた俺
どういうものなんだろうと唸りながら考えていた俺
291デフォルトの名無しさん
2015/10/21(水) 11:49:26.05ID:NJ/LNABV やる気原器いわき的な
292デフォルトの名無しさん
2015/10/22(木) 09:17:07.87ID:gRBaWwNT グレアムの魔道書からではなく
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
293デフォルトの名無しさん
2015/10/22(木) 23:40:53.70ID:rUneY+ez294デフォルトの名無しさん
2015/10/24(土) 04:48:56.04ID:sSEtncll295デフォルトの名無しさん
2015/10/26(月) 23:33:50.22ID:cnZS0lks296デフォルトの名無しさん
2015/10/27(火) 04:19:42.73ID:qSWumRv1 >>294
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。
297デフォルトの名無しさん
2015/11/12(木) 23:53:54.83ID:Viwd1W6j Schemeだとtyped racketとか型つけるのが流行っぽいけどcommon lispも似た感じになってたりします?
298デフォルトの名無しさん
2015/11/13(金) 13:06:25.41ID:mBt3iEyA Haskellは時々仕様が変わるから安心して使えない
299デフォルトの名無しさん
2015/11/15(日) 22:48:26.04ID:NgFg0iNO Arrow-macrosというの見つけた
なんかだ好き
-<> はダイアモンドの杖だって
https://github.com/hipeta/arrow-macros/
http://quickdocs.org/arrow-macros/
なんかだ好き
-<> はダイアモンドの杖だって
https://github.com/hipeta/arrow-macros/
http://quickdocs.org/arrow-macros/
300デフォルトの名無しさん
2015/11/15(日) 22:49:19.75ID:NgFg0iNO あ、誤字
なんだか好き
なんだか好き
301デフォルトの名無しさん
2015/11/18(水) 00:22:55.99ID:D8xoadz9302デフォルトの名無しさん
2015/11/26(木) 00:14:06.33ID:uCvAjqGD > LLVMベースのCommon Lispコンパイラ「Clasp」の開発チームは11月20日、最新版となる「Clasp 4.0」を公開した。
> Clasp 0.4ではインラインコンパイラの「CClasp」を一新し、最適化機能も強化された。
https://osdn.jp/magazine/15/11/25/161300
0.4 と 4.0 を間違えるなよ大違いだろ
> Clasp 0.4ではインラインコンパイラの「CClasp」を一新し、最適化機能も強化された。
https://osdn.jp/magazine/15/11/25/161300
0.4 と 4.0 を間違えるなよ大違いだろ
303デフォルトの名無しさん
2015/11/26(木) 20:05:43.69ID:gXyRUJBd llvmはフリーなソフトウェアの敵
みたいなことをハッカー界隈の偉い人が言ってなかったっけ?
みたいなことをハッカー界隈の偉い人が言ってなかったっけ?
304デフォルトの名無しさん
2015/11/27(金) 06:16:02.28ID:1fwdzPCg GPL 教団の人だな
305デフォルトの名無しさん
2015/12/03(木) 01:47:18.74ID:mCOP4ysm llvmやjavaなどのgpl教団に狙われやすいcl
Schemeはそんなことないのに
Schemeはそんなことないのに
306デフォルトの名無しさん
2015/12/23(水) 21:05:51.95ID:83EO6D9Q 単純な質問なのですが、CommonLispにはリードマクロっていう構文解析機を自分で作れるてきな機能がありますが
これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが
ただ、触った感じ
・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。
・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。
・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった
このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。
OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので
これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが
ただ、触った感じ
・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。
・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。
・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった
このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。
OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので
307デフォルトの名無しさん
2015/12/24(木) 00:08:08.80ID:SRfs7Doz >>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )
WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/
デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html
デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html
ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61
「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html
遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html
遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/
ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/
BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234
アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )
WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/
デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html
デュエル・マスターズ(デュエマ)DM ONLINE 1.8a / VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html
ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61
「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html
遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html
遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/
ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/
BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234
アプレンティス マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html
308デフォルトの名無しさん
2015/12/24(木) 00:09:04.10ID:SRfs7Doz 【 オンラインTCGエディター 】 >>1,>>307
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみろ。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。
↓
機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。
↑
下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。
さ〜て、インド人ベンダーと日本人の翻訳担当PGを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1450555747/-20
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみろ。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。
↓
機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。
↑
下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。
さ〜て、インド人ベンダーと日本人の翻訳担当PGを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1450555747/-20
309デフォルトの名無しさん
2016/01/23(土) 06:54:59.99ID:62o9ix/6 こないだ出た common lisp recipes の電子版 ttp://www.apress.com/9781484211779 が2月1日までセールだとか(ダイレクトマーケティング)
310デフォルトの名無しさん
2016/02/03(水) 08:45:51.54ID:TXUepsJB Pypiみたいに誰でもパッケージ登録出来るリポジトリが欲しい
311デフォルトの名無しさん
2016/02/04(木) 09:02:39.44ID:0n3FRGss312デフォルトの名無しさん
2016/02/20(土) 11:39:04.63ID:NPEQ4RNb313デフォルトの名無しさん
2016/03/19(土) 19:16:42.97ID:zF/sbIkf bordeaux-threadsを使って標準出力に"hello" と出力しようとして
(bt:make-thread #'(lambda () (sleep 2) (princ "hello")))
としてみたけど、何も出力されなくて、
(bt:make-thread #'(lambda () (sleep 2) (princ "hello" #.*standard-output*)))
としたら、出力されました。
どうして*standard-output* で出力できず、
#.*standard-output*を使うと出力されるのでしょうか?
(bt:make-thread #'(lambda () (sleep 2) (princ "hello")))
としてみたけど、何も出力されなくて、
(bt:make-thread #'(lambda () (sleep 2) (princ "hello" #.*standard-output*)))
としたら、出力されました。
どうして*standard-output* で出力できず、
#.*standard-output*を使うと出力されるのでしょうか?
314デフォルトの名無しさん
2016/03/20(日) 18:36:25.23ID:DDfYHSLd *standard-output* がスペシャル変数だから、クロージャに参照を閉じ込められないせい。
スペシャル変数は、いわゆる動的スコープになる。
スペシャル変数は、いわゆる動的スコープになる。
316デフォルトの名無しさん
2016/03/21(月) 08:59:13.60ID:wDZuq9VI 実践common lisp みたいな本を書くリスパーが少ないのはなぜなのでしょうか?
リスパーは common lisp をあまり広めたくないということなのでしょうか?
リスパーは common lisp をあまり広めたくないということなのでしょうか?
317デフォルトの名無しさん
2016/03/30(水) 12:55:55.23ID:7zl3Df3d 実践common lisp みたいな本を買う人が少ないから
318デフォルトの名無しさん
2016/03/30(水) 19:31:52.93ID:O7ZXJNVV Lispってちょっと勉強でつつく人は多いがガッツリやる人は少ないからね。
319デフォルトの名無しさん
2016/03/30(水) 20:10:40.09ID:8q+dx1kL >>318
にわかLisperの存在が一番Lisp族言語のユーザに迷惑なんだよねぇ orz
haskelとかjs界隈もそうみたいだけど。
良いも悪いも全部ひっくるめてLisp(あるいは言語X)で何かを作ることがすきな人にとっては大迷惑。
にわかLisperの存在が一番Lisp族言語のユーザに迷惑なんだよねぇ orz
haskelとかjs界隈もそうみたいだけど。
良いも悪いも全部ひっくるめてLisp(あるいは言語X)で何かを作ることがすきな人にとっては大迷惑。
320デフォルトの名無しさん
2016/03/31(木) 01:45:19.30ID:C1c6UsPS にわかが居ないのなんて、死んだ分野だけだよ。
成果出してればノイズは気にならないが、どんな迷惑が有るの?
成果出してればノイズは気にならないが、どんな迷惑が有るの?
321デフォルトの名無しさん
2016/03/31(木) 19:20:58.97ID:fxztU3O6322デフォルトの名無しさん
2016/03/31(木) 19:24:02.44ID:JUFQTQot 俺の屍を越えてゆけ
323デフォルトの名無しさん
2016/03/31(木) 20:22:01.85ID:X8/ytHGi 俺を踏んでくれ今scheme手習い中だ
324デフォルトの名無しさん
2016/04/01(金) 12:10:45.45ID:cNuDUjMS >>320
scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか
黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う
scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか
黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う
325デフォルトの名無しさん
2016/04/01(金) 19:44:05.93ID:1eTBcwLx 議論の体でそれぞれのメリット/デメリットを天秤に乗せてるだけで、
罵り合いといというわけではないと思うんだが。
ディベートですらない、茶番だろ。
罵り合いといというわけではないと思うんだが。
ディベートですらない、茶番だろ。
326デフォルトの名無しさん
2016/04/02(土) 00:57:27.46ID:HVYESdUP Maximaが使えるcl以上の存在はあるのか?
他言語の数式処理は微妙なのしかない
他言語の数式処理は微妙なのしかない
327デフォルトの名無しさん
2016/04/02(土) 11:14:05.11ID:H6gllaBZ sbcl にて,TCP ソケットを使ってプロセス間通信するライブラリを
使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが,
S 式をどうやって送ればよいか分かりません.
S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか?
使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが,
S 式をどうやって送ればよいか分かりません.
S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか?
328デフォルトの名無しさん
2016/04/02(土) 12:26:41.02ID:k2fP1WMZ >>327
S式を丸ごと文字列で投げても良くない?
S式を丸ごと文字列で投げても良くない?
329デフォルトの名無しさん
2016/04/02(土) 12:31:05.73ID:k2fP1WMZ 追加:
最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね
最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね
330デフォルトの名無しさん
2016/04/02(土) 16:05:25.84ID:H6gllaBZ >>328 さんくす.
そっか.データのリストなら (format nil ...) で文字列にすればできますね.
その線でまずはやってみます.
ただ,それだと関数が送れないですね.
FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―.
そっか.データのリストなら (format nil ...) で文字列にすればできますね.
その線でまずはやってみます.
ただ,それだと関数が送れないですね.
FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―.
331デフォルトの名無しさん
2016/04/02(土) 17:44:40.57ID:4LcO4yg1 関数は環境がぞろぞろとくっついてるから、シリアライズは容易でない。
動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか?
動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか?
332デフォルトの名無しさん
2016/04/06(水) 23:14:32.62ID:3jnY8rH1 Windows環境でClozure CLのホームディレクトリは%USERPROFILE%なのでEmacsの起動バッチで
%USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう
何か回避策無いですかね〜。超不便だわ
%USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう
何か回避策無いですかね〜。超不便だわ
333332
2016/04/06(水) 23:18:58.11ID:3jnY8rH1 ChromeじゃなくてIEを標準ブラウザにしたら動いたw
334デフォルトの名無しさん
2016/04/06(水) 23:55:35.66ID:3jnY8rH1 browse-url-generic-programでChromeのフルパス指定してやって一見落着じゃ
LispよりEmacsのがハードル高いわ
LispよりEmacsのがハードル高いわ
335デフォルトの名無しさん
2016/04/07(木) 00:31:50.58ID:838jiYpM 型が緩いhaskellという印象は合ってる?
336デフォルトの名無しさん
2016/04/07(木) 02:04:56.57ID:DadLuQug 離れすぎているからどこが同じでどこが違うとかいうのはいちいち列挙できへんわ。
Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。
でも、やっぱり全然違うわ。
Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。
でも、やっぱり全然違うわ。
337デフォルトの名無しさん
2016/04/07(木) 03:12:28.37ID:69hNyYMv Haskellでmaxima以上に便利な数式処理ソフトあります?
338334
2016/04/07(木) 18:56:54.61ID:ccUxIyvt バッチの中だけでも%USERPROFILE%を変えるのは副作用が大きすぎて駄目じゃ。
全然、一見落着じゃないやんけ orz
全然、一見落着じゃないやんけ orz
339デフォルトの名無しさん
2016/04/10(日) 19:23:57.88ID:vkQXckPD なぜか関数型ってくくり方でまとめられるときがあるけどまあ全然違うわな。
340デフォルトの名無しさん
2016/04/14(木) 10:33:43.60ID:HoZEVK9B Windowsでスタンドアローンアプリ化するとコンソールアプリになるけど
コンソールウインドウ消す方法はないの?
GUI画面のとき邪魔
コンソールウインドウ消す方法はないの?
GUI画面のとき邪魔
341デフォルトの名無しさん
2016/04/14(木) 12:27:26.25ID:ahglGqCD SBCLにはGUIオプションがあった。
他のには無いっぽいな。
このスレには人が居ないんか?
他のには無いっぽいな。
このスレには人が居ないんか?
342デフォルトの名無しさん
2016/04/15(金) 19:54:55.30ID:pOJBl4dX 2chがもう廃れてるしな
343デフォルトの名無しさん
2016/04/15(金) 20:29:42.54ID:mBIjTfFV じゃ、何処へ逝ったら良いんだ?
344デフォルトの名無しさん
2016/04/16(土) 11:26:52.60ID:8wMWxABn こうなりゃ昔めんどうみた平手の造酒んとこでも行くか
345デフォルトの名無しさん
2016/04/16(土) 13:27:14.87ID:bPs+CkgD 初心者でLisp全然まだ分かってなくて、本を読みながら色々実験しているんだけど、
socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。
:external-formatとかいろいろ試したけどダメだった。
結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの?
それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか?
でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。
replで実験しながらできるのがいいね。
socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。
:external-formatとかいろいろ試したけどダメだった。
結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの?
それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか?
でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。
replで実験しながらできるのがいいね。
346デフォルトの名無しさん
2016/04/16(土) 16:36:43.09ID:MGs6Ga+C >>345
文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。
文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。
347デフォルトの名無しさん
2016/04/17(日) 21:44:33.74ID:goQ5YOot 割と取っ付きやすい言語だと思うんだけどね〜。
348デフォルトの名無しさん
2016/04/18(月) 12:23:07.50ID:6QlHoC4+ slime必須な開発環境がネックかもね
まあLispBoxまんま使えば良いけど
まあLispBoxまんま使えば良いけど
349デフォルトの名無しさん
2016/04/24(日) 22:39:11.27ID:scaRHXPI emacsが嫌いでもAtom-Slimeあるぞ!
350デフォルトの名無しさん
2016/04/25(月) 09:16:48.45ID:W8v031Mp >>349
そんなんあるんかー
そんなんあるんかー
351デフォルトの名無しさん
2016/05/01(日) 15:18:51.08ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
;
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
;
352デフォルトの名無しさん
2016/05/16(月) 08:34:14.29ID:fo7lQzzV closによるオブジェクト指向を勉強している最中だけど、Javaやc++と違って、プライベートな変数や関数とかないの?
そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの?
そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの?
353デフォルトの名無しさん
2016/05/16(月) 21:45:38.72ID:jtYky004 パッケージとか言ってみる
354デフォルトの名無しさん
2016/05/19(木) 02:07:18.56ID:jTIEwZO7 closは実行時になんでも弄れる仕組みになっているので隠してもしょうがない
その代わりJavaやC++とは比較にならないほど動的
お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益
(定義時に存在しないクラスのスロットをごにょごにょするなど)
その代わりJavaやC++とは比較にならないほど動的
お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益
(定義時に存在しないクラスのスロットをごにょごにょするなど)
355デフォルトの名無しさん
2016/05/19(木) 04:03:53.01ID:lKV7/eW/ > https://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3A%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E6%AD%A3%E8%A7%A3#H-22ymh4zauzzn9
> 「どんなに汚くても、打てる手段がある」というのは 何物にも替え難い救いなのです。
> 「どんなに汚くても、打てる手段がある」というのは 何物にも替え難い救いなのです。
356デフォルトの名無しさん
2016/05/20(金) 13:08:49.10ID:JbHmc+E3 EmacsにはCLOSエミュのeieioがあるけどそれだとプライベートメンバーが作れる
当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど
うっかり触る事は出来なくなる
(slot-valueでアクセス出来なくなるとかsetfで書き込めないとか)
当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど
うっかり触る事は出来なくなる
(slot-valueでアクセス出来なくなるとかsetfで書き込めないとか)
357デフォルトの名無しさん
2016/05/23(月) 01:28:42.95ID:wfdlAGNm >> 355
eieioのそれほんとに機能してる?
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00402.html
closならmopで実装だろうね
eieioのそれほんとに機能してる?
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00402.html
closならmopで実装だろうね
358356
2016/05/23(月) 18:45:02.73ID:sxSKeUhG >>357
ちゃんと機能してるよ
:reader :accessor 経由だとどこでもアクセス出来る
それらを定義しないで slot-value 経由でアクセスすると
定義された class 用の defmedhod 内じゃないとエラーになる
ちゃんと機能してるよ
:reader :accessor 経由だとどこでもアクセス出来る
それらを定義しないで slot-value 経由でアクセスすると
定義された class 用の defmedhod 内じゃないとエラーになる
359356
2016/05/23(月) 18:54:51.46ID:sxSKeUhG360デフォルトの名無しさん
2016/06/23(木) 23:59:50.36ID:G+YERTIa Common Lispの規格を進化させようと日本人が頑張ってるサイトがあった気がしたけど全く見つからない
教えてくれ
教えてくれ
361デフォルトの名無しさん
2016/06/24(金) 00:22:49.85ID:RDdMjpj7 身も蓋もないけど
コモン規格なんだから
枯れてた方が良いんじゃねーの
コモン規格なんだから
枯れてた方が良いんじゃねーの
362デフォルトの名無しさん
2016/06/24(金) 12:20:42.94ID:Iu+HWWVT もっと太らせる気なのか
今でも巨デブなのに
今でも巨デブなのに
363デフォルトの名無しさん
2016/06/24(金) 15:11:04.73ID:RDdMjpj7 この機能が足りないって思ったら
ライブラリ提供すればいいんだよ
規格を変えるってのは
よほど説得力がないと難しい
ライブラリ提供すればいいんだよ
規格を変えるってのは
よほど説得力がないと難しい
364360
2016/06/24(金) 15:12:24.11ID:64NOMHgE Common Lispのこの関数はこうすべきだったとか色々書いてて面白かったが
ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる…
もう少し探してみるよ
slideshareだったかな…
ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる…
もう少し探してみるよ
slideshareだったかな…
365360
2016/06/24(金) 16:07:31.75ID:64NOMHgE http://www.slideshare.net/fukamachi/redesigning-common-lisp
これだった
日本語で一生懸命検索してたからそりゃ出てこないわけだ…お騒がせしました
これだった
日本語で一生懸命検索してたからそりゃ出てこないわけだ…お騒がせしました
366デフォルトの名無しさん
2016/06/24(金) 16:41:47.94ID:YpPFayvt CommonLisp好きだけど未だに関数をfuncallで呼ばないとイケナイ名前空間の扱いだけは理解できない。
なんで分けたんだろうって解説どこかにないかな?
なんで分けたんだろうって解説どこかにないかな?
367デフォルトの名無しさん
2016/06/24(金) 17:42:01.98ID:t8u1m238 >>365
ああ、CL21 の人のか。
ああ、CL21 の人のか。
368デフォルトの名無しさん
2016/06/24(金) 20:04:29.17ID:hXccTKlm369デフォルトの名無しさん
2016/06/24(金) 20:25:53.91ID:d6du9t53 動詞と名詞を兼ねる単語が多すぎる英語にそもそもの問題があるやも
list然りmap然り
list然りmap然り
370デフォルトの名無しさん
2016/07/01(金) 20:10:20.19ID:yQsAPI3T 質問だけどAllegro CLで実行ファイルを作成するとサイズはどれぐらいになる?
SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので
SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので
371デフォルトの名無しさん
2016/07/02(土) 12:59:00.03ID:OqC3vtTc よく見たらAllegroで実行ファイルを作成出来るのはEnterprise版以上だった
そもそもEnterprise版を使った人がいなさそうだな…
そもそもEnterprise版を使った人がいなさそうだな…
372デフォルトの名無しさん
2016/07/02(土) 17:34:13.78ID:FM4LazWe それは、「お前ら貧乏人ばかりだな」と言ってるのと同じだな。
373デフォルトの名無しさん
2016/07/02(土) 17:43:37.01ID:wOG82f10 >>372
いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw
つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの?
いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw
つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの?
374デフォルトの名無しさん
2016/07/03(日) 12:32:44.64ID:i88MiToD 数理システムだと社内で使ってるんじゃないの
中の人はこのスレ見てないか
中の人はこのスレ見てないか
375デフォルトの名無しさん
2016/07/03(日) 21:01:01.25ID:yj3P75/T Professionalだと6万ぐらいだから個人でも買えなくもないけど
Enterpriseはいくらすんだろ?
数十万はしそうだけど仕事で使うんなら払える額でもあるな
Enterpriseはいくらすんだろ?
数十万はしそうだけど仕事で使うんなら払える額でもあるな
376デフォルトの名無しさん
2016/07/03(日) 22:27:03.67ID:ZjY2/t9+377デフォルトの名無しさん
2016/07/03(日) 23:13:52.65ID:nqVZhyDy >>376
Professinal版って32ビット版しかないかじゃないか?
Professinal版って32ビット版しかないかじゃないか?
378デフォルトの名無しさん
2016/07/04(月) 14:40:11.42ID:k9kiUpvM LispWorksの実行ファイル書き出しは最小で6.5-7.5MBぐらいからみたいだからかなりいいな
けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし…
けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし…
379デフォルトの名無しさん
2016/07/05(火) 02:57:14.28ID:HX6TWKu0 ECLは?
380デフォルトの名無しさん
2016/07/06(水) 15:08:51.31ID:3m0XVVXB ECL使った事ないけど実行ファイルを作成したら普通にC言語で作ったぐらいのサイズになるんだろうね
あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな
あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな
381デフォルトの名無しさん
2016/07/12(火) 23:20:50.64ID:CyKbMfvi Common Lispの処理系がわざとバグを入れてmaximaが動かなくなるように仕向けてるようなのを見つけたのだけど
Abclとclispはgnome3と同じ状態になってる?
Abclとclispはgnome3と同じ状態になってる?
382デフォルトの名無しさん
2016/07/13(水) 04:54:37.74ID:4HQ8M+Y/ maximaは主に古い仕様のcommonlispで動く
処理系が古い仕様のサポートをやめることをmaxima切り捨ての陰謀とするなら
そうなんじゃないの
maximaが合せるのが筋だろ
処理系が古い仕様のサポートをやめることをmaxima切り捨ての陰謀とするなら
そうなんじゃないの
maximaが合せるのが筋だろ
383デフォルトの名無しさん
2016/07/13(水) 05:14:45.73ID:7U1J32do 互換性を保てないならcommonなんて名乗らないでほしい
384デフォルトの名無しさん
2016/07/13(水) 10:56:35.33ID:/T6M1MVl Commune Lisp
385デフォルトの名無しさん
2016/07/13(水) 15:43:05.70ID:xtHEpCPd gommen lisp
386デフォルトの名無しさん
2016/07/13(水) 22:43:00.43ID:Fcdf94Kw sourceforgeが死んでてMaximaのサイトにアクセス出来んぞ…
SBCLのサイトにもアクセス出来ないしCL界隈はsourceforgeに依存してるとこが多いな
SBCLのサイトにもアクセス出来ないしCL界隈はsourceforgeに依存してるとこが多いな
387デフォルトの名無しさん
2016/07/13(水) 22:49:06.02ID:/T6M1MVl アドウェア配布サイトに依存するとはいかんな
388デフォルトの名無しさん
2016/08/12(金) 21:39:14.20ID:duu5cHW/ フリーソフト作る目的でAllegro CLのAcademic版のEnterprise版買った方いませんか?
非商用目的で64bit版の実行ファイルを作れるとなると、Enterprise版でAcademic版を買うのがよいのかなと。
(そもそも、条件にマッチしてるかわかってないですが)
Academic版ならEnterpriseでも意外にお手頃価格で買えたりしないかな?
そういえば、Allegro CLの日本代理店って撤退したんですかね?
HPが消えてるのか、アクセスできないですね。
非商用目的で64bit版の実行ファイルを作れるとなると、Enterprise版でAcademic版を買うのがよいのかなと。
(そもそも、条件にマッチしてるかわかってないですが)
Academic版ならEnterpriseでも意外にお手頃価格で買えたりしないかな?
そういえば、Allegro CLの日本代理店って撤退したんですかね?
HPが消えてるのか、アクセスできないですね。
389デフォルトの名無しさん
2016/08/13(土) 20:37:11.64ID:moPmKDp5 >>388
Allegroはなぁ、ネタに値段書いていない銀座の寿司屋のイメージが
Allegroはなぁ、ネタに値段書いていない銀座の寿司屋のイメージが
390デフォルトの名無しさん
2016/08/24(水) 21:29:45.05ID:9kP9ZOpP 何千桁もあるbignumを適当な所に小数点を打ったり10桁毎にスペースを入れたり
100桁毎に改行して表示したいけど、formatでやる方法があったら教えてくれ
100桁毎に改行して表示したいけど、formatでやる方法があったら教えてくれ
391デフォルトの名無しさん
2016/08/25(木) 00:53:05.88ID:zjrUiCsA >> 390
ない.
調べるよりプログラム書いた方がはやい.loopマクロで5行位で書ける.
どうしてもformatつかうなら自分で書いてformatの~/で呼べば?
ない.
調べるよりプログラム書いた方がはやい.loopマクロで5行位で書ける.
どうしてもformatつかうなら自分で書いてformatの~/で呼べば?
392デフォルトの名無しさん
2016/08/25(木) 09:19:55.78ID:1bKygDuA >>390
(format t "~,,' ,10:D" 222232244629420445529739893461909967206666939096499764990979600)
222 2322446294 2044552973 9893461909 9672066669 3909649976 4990979600
> 2.3.1 ~D ― Decimal
> arg の消費: 1個
> パラメータ: ~ mincol , padchar , commachar , comma-interval D
(中略)
> ` : ’ で修飾すると,下から comma-interval 桁ごとに commachar で指定された文字で数字を区切る ( comma-interval のデフォルトは3, commachar のデフォルトは ` , ’ ) .
http://super.para.media.kyoto-u.ac.jp/~tasuku/format-func.html
上の例だと commachar は空白、comma-interval は 10、他のパラメータは無し
文字をパラメータにする場合その文字の頭に単引用符 ' を付けて表す
改行もOK
(format t "~,,'
,1:D" 123)
1
2
3
(format t "~,,' ,10:D" 222232244629420445529739893461909967206666939096499764990979600)
222 2322446294 2044552973 9893461909 9672066669 3909649976 4990979600
> 2.3.1 ~D ― Decimal
> arg の消費: 1個
> パラメータ: ~ mincol , padchar , commachar , comma-interval D
(中略)
> ` : ’ で修飾すると,下から comma-interval 桁ごとに commachar で指定された文字で数字を区切る ( comma-interval のデフォルトは3, commachar のデフォルトは ` , ’ ) .
http://super.para.media.kyoto-u.ac.jp/~tasuku/format-func.html
上の例だと commachar は空白、comma-interval は 10、他のパラメータは無し
文字をパラメータにする場合その文字の頭に単引用符 ' を付けて表す
改行もOK
(format t "~,,'
,1:D" 123)
1
2
3
393390
2016/08/25(木) 13:02:06.57ID:fbmJygYr394デフォルトの名無しさん
2016/08/25(木) 14:33:57.04ID:6zcPyAfh 学習用にC++で書いた楕円曲線暗号のデバッグの時にBignum何度も目視したの思い出してちと鬱が入るなぁ
395デフォルトの名無しさん
2016/09/13(火) 11:41:49.02ID:J1eBbaIT 日本人コモンリスパーで有名な人って誰?
竹内センセーと苫米地ハカセ以外で!
竹内センセーと苫米地ハカセ以外で!
396デフォルトの名無しさん
2016/09/13(火) 22:25:28.74ID:8U9RmJUe 竹内センセーと苫米地ハカセは国際コモンリスパーとしての認知度は低いヨ
もちろんtakの竹内センセーは知られているけどコモンリスパーじゃないネ
トマベチ? ダレ?
fukamachi ,kuroda は広く知られているヨ
もちろんtakの竹内センセーは知られているけどコモンリスパーじゃないネ
トマベチ? ダレ?
fukamachi ,kuroda は広く知られているヨ
397デフォルトの名無しさん
2016/09/14(水) 07:54:21.71ID:JzjCbHsO 国内の知名度ではドクター苫米地が圧倒的だろう
398デフォルトの名無しさん
2016/09/22(木) 11:55:47.84ID:svLBF04r 何がまずいのかわからん。
誰か教えて。
(defun f (x) (* 2 x))
(defun g (y z) (y z))
(g f 3)
*** - SYSTEM::READ-EVAL-PRINT: variable F has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of F.
STORE-VALUE :R2 Input a new value for F.
ABORT :R3 Abort main loop
誰か教えて。
(defun f (x) (* 2 x))
(defun g (y z) (y z))
(g f 3)
*** - SYSTEM::READ-EVAL-PRINT: variable F has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of F.
STORE-VALUE :R2 Input a new value for F.
ABORT :R3 Abort main loop
399デフォルトの名無しさん
2016/09/22(木) 12:41:06.30ID:Q0XXtJDC >>398
(defun f (x) (* 2 x))
(defun g (y z) (funcall y z))
(g #’f 3)
6
Ref.
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functions.html
(defun f (x) (* 2 x))
(defun g (y z) (funcall y z))
(g #’f 3)
6
Ref.
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functions.html
400デフォルトの名無しさん
2016/09/22(木) 14:56:41.64ID:svLBF04r401デフォルトの名無しさん
2016/09/23(金) 21:24:52.87ID:CYp0vnmU Scheme 系だと
(define (f x) (* x 2))
(define (g y z) (y z))
(g f 3)
6
って書けるんだね。
(define (f x) (* x 2))
(define (g y z) (y z))
(g f 3)
6
って書けるんだね。
402デフォルトの名無しさん
2016/09/23(金) 21:27:52.82ID:y9ZJGzw+ へ〜
403デフォルトの名無しさん
2016/09/24(土) 05:38:26.18ID:nvb+KqdK 関数型のブームは来てるけど
HaskellとかScalaに押されてない?
HaskellとかScalaに押されてない?
404デフォルトの名無しさん
2016/09/24(土) 08:10:52.77ID:VAyZ/8kj GNU makeやgdbにguileがリンクされるようになったよ
もう少しの辛抱や
もう少しの辛抱や
405デフォルトの名無しさん
2016/09/24(土) 17:22:03.97ID:ryMydsM5 Common Lispはマルチパラダイムの言語だ
goto(go)すら存在する
goto(go)すら存在する
406デフォルトの名無しさん
2016/09/25(日) 21:24:57.99ID:HvtwLO9L >>405
goはマッカーシーのlispからあるけどお。すらってなにい?
goはマッカーシーのlispからあるけどお。すらってなにい?
407デフォルトの名無しさん
2016/09/25(日) 22:23:20.95ID:eD42xPoY すらまっぱぎ
408デフォルトの名無しさん
2016/09/26(月) 15:46:42.52ID:b0MmmDW8 >>406
Common LispのスレでCommon Lispと言って何か問題あるか?
Common LispのスレでCommon Lispと言って何か問題あるか?
409デフォルトの名無しさん
2016/10/05(水) 23:25:20.08ID:C9cv9Gl5410デフォルトの名無しさん
2016/10/12(水) 15:59:00.20ID:RYqLfx9/ その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
411デフォルトの名無しさん
2016/10/12(水) 16:33:55.36ID:8kMwO8W7 今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。
listじゃなくてmklistとかさ。
412デフォルトの名無しさん
2016/10/12(水) 16:34:06.22ID:M1jDwzz2 #fと'()の分離はなんでだったんや?
413デフォルトの名無しさん
2016/10/12(水) 17:40:21.14ID:RYqLfx9/ それはSchemeスレでする話だな
414デフォルトの名無しさん
2016/10/13(木) 20:07:13.89ID:xgGYMiuu 0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
415デフォルトの名無しさん
2016/10/13(木) 22:52:04.77ID:C1I1uhJH いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。
決め事でしか無いように思う。
416デフォルトの名無しさん
2016/10/15(土) 20:05:40.07ID:HnVxap0b デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。
417デフォルトの名無しさん
2016/10/16(日) 18:14:50.68ID:r9fJMQJL ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
418デフォルトの名無しさん
2016/10/16(日) 18:17:07.36ID:r9fJMQJL419デフォルトの名無しさん
2016/10/16(日) 21:52:46.83ID:8ptZ6tcn うちはSBCLだけど、たぶんloadでできる
$ cat hoge.lisp
(defun twice (f x) (funcall f (funcall f x)))
(defun dbl (x) (* x 2))
$ sbcl
This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
(略)
* (load "hoge")
T
* (twice #'dbl 3)
12
$ cat hoge.lisp
(defun twice (f x) (funcall f (funcall f x)))
(defun dbl (x) (* x 2))
$ sbcl
This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
(略)
* (load "hoge")
T
* (twice #'dbl 3)
12
420デフォルトの名無しさん
2016/10/17(月) 00:33:48.91ID:sDQTJcTS421デフォルトの名無しさん
2016/10/17(月) 09:04:24.02ID:QD9IQMc+ clisp の場合は
clisp a.lisp
という風にファイル名を指定するだけでも実行できるよ
この場合REPLとは異なり、特に何もしなくても自動的に終了する
sbcl には同様のことをする --script オプションがある
clisp a.lisp
という風にファイル名を指定するだけでも実行できるよ
この場合REPLとは異なり、特に何もしなくても自動的に終了する
sbcl には同様のことをする --script オプションがある
422デフォルトの名無しさん
2016/10/17(月) 10:07:13.56ID:sDQTJcTS >>421
なるほど、そういう方法もあるんですね。参考になります。
なるほど、そういう方法もあるんですね。参考になります。
423デフォルトの名無しさん
2016/10/18(火) 11:30:07.17ID:1ksiQ1k/ 多分emacsでSLIME使うのが一番捗る。ある程度やって、もっと環境良くしたいと思ったら導入してみるといい
ファイルに書きなぐって一部だけ評価するとかできる
ファイルに書きなぐって一部だけ評価するとかできる
424デフォルトの名無しさん
2016/10/23(日) 13:47:10.52ID:crofOT9u (defparameter param #\a)
を生成するマクロ
(defmacro ch! (ch)
`(defparameter param #\,ch))
が、動かないのはなぜでしょうか?
教えて下さい。
を生成するマクロ
(defmacro ch! (ch)
`(defparameter param #\,ch))
が、動かないのはなぜでしょうか?
教えて下さい。
425デフォルトの名無しさん
2016/10/25(火) 08:55:35.68ID:dAAkpCke 424です。
どなたか、教えてください。
どなたか、教えてください。
426デフォルトの名無しさん
2016/10/25(火) 23:40:26.35ID:NdRXRry8 入力マクロを何と心得ておる
427デフォルトの名無しさん
2016/10/26(水) 01:17:49.11ID:Z8ZLd5j0 >>425
面白い。426のいうとおり
リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。
(defmacro ch! (ch)
(read-from-string (format nil
面白い。426のいうとおり
リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。
(defmacro ch! (ch)
(read-from-string (format nil
428デフォルトの名無しさん
2016/11/01(火) 15:37:56.06ID:d/Emm7ZQ429デフォルトの名無しさん
2016/11/02(水) 05:41:35.19ID:ydCUsA37 >>428
割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/)
vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない)
つかLisperならEmacsと心中するのが吉
#って感じなEmacsと入水心中の俺 orz
#Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ
割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/)
vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない)
つかLisperならEmacsと心中するのが吉
#って感じなEmacsと入水心中の俺 orz
#Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ
430デフォルトの名無しさん
2016/11/02(水) 16:50:18.95ID:Zl1DvHRz SLIMEっぽいのは一応あるのね
http://www.vim.org/scripts/script.php?script_id=2531
http://www.vim.org/scripts/script.php?script_id=2531
431デフォルトの名無しさん
2016/11/22(火) 20:43:31.30ID:KvJ3xe8B 独り言だが
ClojureとClozure CLってべつものなのか
Clozure CLはjava関係ないのね
ClojureとClozure CLってべつものなのか
Clozure CLはjava関係ないのね
432デフォルトの名無しさん
2016/12/18(日) 08:12:54.17ID:H5VGjwqC conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか?
simple-conditinとかにはあるのに
simple-conditinとかにはあるのに
433デフォルトの名無しさん
2016/12/18(日) 15:52:29.97ID:odpeYpuF 多重継承だから
434デフォルトの名無しさん
2017/01/11(水) 12:56:06.91ID:Dj+amy8+ 生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?
ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?
ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。
435デフォルトの名無しさん
2017/01/11(水) 13:08:56.90ID:oS3M3jOK Win機で開発するのが間違ってる
436デフォルトの名無しさん
2017/01/11(水) 13:41:55.71ID:CpReZJmf 『プログラムの保存』とは一体……?
437デフォルトの名無しさん
2017/01/11(水) 17:25:20.73ID:cn/qBmTu BASICのSAVEか…
438デフォルトの名無しさん
2017/01/11(水) 22:14:49.39ID:qtQ06epR439デフォルトの名無しさん
2017/01/11(水) 22:20:44.82ID:LKP7w0Oz www
440デフォルトの名無しさん
2017/01/12(木) 00:33:15.10ID:ON8wOxBk441デフォルトの名無しさん
2017/01/12(木) 06:54:05.10ID:pNuRGDWl ほしいのは、emacs+slime環境?
あるいはaclとかlispworks
あるいはaclとかlispworks
442デフォルトの名無しさん
2017/01/12(木) 09:59:06.51ID:wWrcziVQ REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い
443デフォルトの名無しさん
2017/01/12(木) 10:32:26.76ID:UNGksYU7 >>442
emacs環境だとLispよりもemacsの勉強になってしまうからなあ
emacs環境だとLispよりもemacsの勉強になってしまうからなあ
444デフォルトの名無しさん
2017/01/12(木) 13:02:34.77ID:bT7YUbCB それならlemでいいんじゃない?
445デフォルトの名無しさん
2017/01/12(木) 21:49:43.62ID:42JGZ5hK xyzzyで
446デフォルトの名無しさん
2017/01/13(金) 04:08:54.48ID:BzdeAQwY447デフォルトの名無しさん
2017/01/13(金) 11:27:29.66ID:QaVc2fKW clispの開発が終わってしまったし
448デフォルトの名無しさん
2017/01/13(金) 11:29:56.98ID:QaVc2fKW449デフォルトの名無しさん
2017/01/16(月) 16:21:04.42ID:qEdXmsgN450デフォルトの名無しさん
2017/01/17(火) 11:28:47.60ID:sDlYunh0 >>449
長年更新していないので、オワタ可能性は高くね?
長年更新していないので、オワタ可能性は高くね?
451デフォルトの名無しさん
2017/01/18(水) 14:32:40.83ID:+0XE4PkH Lispの仕事ってまだあるのだろうか?
古いシステムの保守程度?
古いシステムの保守程度?
452デフォルトの名無しさん
2017/01/18(水) 23:04:07.71ID:JFSfmo96 どっかの会社で、common lispでやっているところがあったはず
完全に廃れた感じはしないな
完全に廃れた感じはしないな
453デフォルトの名無しさん
2017/01/19(木) 09:03:33.76ID:Gh/NlR3g >>452
どんな仕事なんだろう?
どんな仕事なんだろう?
454デフォルトの名無しさん
2017/01/19(木) 09:38:33.97ID:uhfgjGGl455デフォルトの名無しさん
2017/01/19(木) 12:17:01.00ID:TbaqbQZk Lispと言えば、研究用途かWebサーバーで使うようなイメージしかないわ
456デフォルトの名無しさん
2017/01/19(木) 21:19:55.80ID:gCwd8P05 お前の抱えるイメージなんかに誰か興味を持つと思ったのか?
457デフォルトの名無しさん
2017/01/20(金) 00:42:56.98ID:rsnxDR2c458デフォルトの名無しさん
2017/01/20(金) 10:12:07.41ID:Nvso2zBq >>456 みたいなBOTに使われているという実例
459デフォルトの名無しさん
2017/01/20(金) 11:53:33.16ID:coMO3q54 LispはUNIX以外で実用的に使うのは無理なのかねえ?
460デフォルトの名無しさん
2017/01/20(金) 12:28:28.14ID:SVUCN/eR461デフォルトの名無しさん
2017/01/20(金) 12:48:36.11ID:8z9BkdPJ Lisp はWebサーバ用の言語
462デフォルトの名無しさん
2017/01/20(金) 19:20:31.02ID:XUVXYG0t lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど
463デフォルトの名無しさん
2017/01/21(土) 06:13:30.03ID:mYUPWk0d464デフォルトの名無しさん
2017/01/21(土) 11:57:50.59ID:0dQCqgGa >>463
そんな読み物で何が分かるんだ?
そんな読み物で何が分かるんだ?
465デフォルトの名無しさん
2017/01/21(土) 16:17:15.46ID:UaDisbHg roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない
こんな糞アプリ使えるかよ
こんな糞アプリ使えるかよ
466デフォルトの名無しさん
2017/01/21(土) 16:57:44.64ID:QA6O+rWe ここで聞いてももう駄目
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い
467デフォルトの名無しさん
2017/01/21(土) 19:07:36.86ID:1H01QVS7 ttps://github.com/roswell/roswell の Installing scripts に
$ ros install fukamachi/qlot # will install it from the GitHub
って書いてあるけど知りたいのはこれじゃないってこと?
$ ros install fukamachi/qlot # will install it from the GitHub
って書いてあるけど知りたいのはこれじゃないってこと?
468デフォルトの名無しさん
2017/01/22(日) 10:57:47.88ID:b2xXmV6K >>404
言語組み込み解禁で誰かがluaに変えると予想
言語組み込み解禁で誰かがluaに変えると予想
469デフォルトの名無しさん
2017/01/29(日) 02:04:07.29ID:jpDTpmEM Land of lispの動画見て来ますた
470デフォルトの名無しさん
2017/01/29(日) 22:21:22.72ID:QjLLrAQA >>469
いらっしゃーい
いらっしゃーい
471デフォルトの名無しさん
2017/01/30(月) 02:40:54.54ID:mBiYg09G >>469
あの動画楽しいよね。
あの動画楽しいよね。
472デフォルトの名無しさん
2017/02/01(水) 13:13:45.46ID:uPNpYJZg わかる人いたら教えて下さい。
iterm2でrepl(sbcl)を最初から起動させようと
replというプロファイルを作り
.bachrcに
if [ "$ITERM_PROFILE" = "repl" ];
then
sbcl
fi
と書くと、たしかにsbclを実行するのですが
以下のメッセージが出て起動しません。
fatal error encountered in SBCL pid 3042:
can't find core file at /usr/local/lib/sbcl//sbcl.core
どうしたら良いのでしょうか。
ちなみに再度sbclと入力するといつも通り起動します。
iterm2でrepl(sbcl)を最初から起動させようと
replというプロファイルを作り
.bachrcに
if [ "$ITERM_PROFILE" = "repl" ];
then
sbcl
fi
と書くと、たしかにsbclを実行するのですが
以下のメッセージが出て起動しません。
fatal error encountered in SBCL pid 3042:
can't find core file at /usr/local/lib/sbcl//sbcl.core
どうしたら良いのでしょうか。
ちなみに再度sbclと入力するといつも通り起動します。
473デフォルトの名無しさん
2017/02/03(金) 00:03:57.75ID:uSnzwgyQ コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか?
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない
474デフォルトの名無しさん
2017/04/05(水) 00:10:33.71ID:dD5KS/CH Common lispからpythonの特にnumpy関係のライブラリ使う方法ないのでしょうか?
475デフォルトの名無しさん
2017/04/05(水) 03:18:41.90ID:9ywW0Xq5 >>474
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?
476デフォルトの名無しさん
2017/04/08(土) 15:56:08.90ID:Uc8a2Yv6 Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ
Sparse matrix計算も出来ないみたいだし
Sparse matrix計算も出来ないみたいだし
477デフォルトの名無しさん
2017/05/03(水) 04:46:48.46ID:94GhuONY Cのプログラムがcuda使うと100倍速くなるのに
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?
478デフォルトの名無しさん
2017/05/09(火) 20:10:22.37ID:v4p9YapF >>477
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う
479デフォルトの名無しさん
2017/05/09(火) 20:19:48.11ID:v4p9YapF >>476
密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。
疎行列なら現状ラッパーが多分ないのでCFFIでcuSPARSEへのバインディングを書こう。
全結合のディープラーニングならMGLでCommon Lispのみでできる。
PythonのClojureライクなLisp方言ならHy(hylang)がある。
Pythonのライブラリが直接使いたいならこれを使えばいい。
密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。
疎行列なら現状ラッパーが多分ないのでCFFIでcuSPARSEへのバインディングを書こう。
全結合のディープラーニングならMGLでCommon Lispのみでできる。
PythonのClojureライクなLisp方言ならHy(hylang)がある。
Pythonのライブラリが直接使いたいならこれを使えばいい。
480デフォルトの名無しさん
2017/05/19(金) 19:45:50.96ID:N5yG+fmp 初心者です ハマってしまったので助けて下さい!
ファイルを読み込んで a=abcのような行を
(defparameter *a* 'abc)のようにするマクロなのですが
(readconfig "filename") だとうまくいくのですが
(readconfig (concatenate 'string "file" "name"))のように呼び出しても引数が評価されずにそのまま渡ってしまいます。
(defmacro readconfig (filename)
`(progn
,@(loop for i in
(with-open-file
(s filename :direction :input :external-format :utf-8)
(loop :for line := (read-line s nil) :while line :collect line))
collect
(let* ((l (split-sequence:split-sequence #\= i))
(a (read-from-string (concatenate 'string "*" (car l) "*")))
(b (second l)))
`(defparameter ,a (read-from-string ,b))))))
ファイルを読み込んで a=abcのような行を
(defparameter *a* 'abc)のようにするマクロなのですが
(readconfig "filename") だとうまくいくのですが
(readconfig (concatenate 'string "file" "name"))のように呼び出しても引数が評価されずにそのまま渡ってしまいます。
(defmacro readconfig (filename)
`(progn
,@(loop for i in
(with-open-file
(s filename :direction :input :external-format :utf-8)
(loop :for line := (read-line s nil) :while line :collect line))
collect
(let* ((l (split-sequence:split-sequence #\= i))
(a (read-from-string (concatenate 'string "*" (car l) "*")))
(b (second l)))
`(defparameter ,a (read-from-string ,b))))))
481デフォルトの名無しさん
2017/05/19(金) 21:20:45.65ID:/bO1sGez 引数が評価されてないね
482デフォルトの名無しさん
2017/05/19(金) 21:49:23.53ID:/bO1sGez >>480
macroexpand で展開してみた?
macroexpand で展開してみた?
483デフォルトの名無しさん
2017/05/19(金) 21:58:39.33ID:N5yG+fmp484デフォルトの名無しさん
2017/05/20(土) 00:30:38.53ID:ZKXptbMB >>480
どうしてマクロにしたの?初心者だから?
どうしてマクロにしたの?初心者だから?
485デフォルトの名無しさん
2017/05/20(土) 01:15:39.37ID:I6lRK30f >>484
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
486デフォルトの名無しさん
2017/05/20(土) 01:30:33.54ID:I6lRK30f 問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
487デフォルトの名無しさん
2017/05/21(日) 06:36:36.81ID:oB72Q+Da OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ
cpuとgpuで100倍近く速度に差があるよ
488デフォルトの名無しさん
2017/05/21(日) 06:50:43.54ID:oB72Q+Da typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?
489デフォルトの名無しさん
2017/05/21(日) 19:45:11.09ID:jy5dosQP490デフォルトの名無しさん
2017/05/22(月) 06:10:33.21ID:Suxf7jk2 sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った
491デフォルトの名無しさん
2017/05/22(月) 19:06:44.55ID:cqwt5c+d sbclのdescribeで
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
492デフォルトの名無しさん
2017/05/25(木) 21:17:35.11ID:1hi1bgKK493デフォルトの名無しさん
2017/05/31(水) 17:40:47.18ID:PPe5oyts Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか
c言語の解析するサンプルコードなら他のでも良いです
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか
c言語の解析するサンプルコードなら他のでも良いです
494デフォルトの名無しさん
2017/07/09(日) 02:25:04.88ID:ryDnV29I 誰か知っていれば教えてほしいのですが
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
495デフォルトの名無しさん
2017/11/08(水) 02:39:25.32ID:Uoqj8nW+ TEST
496デフォルトの名無しさん
2017/12/06(水) 00:55:26.32ID:eBsnaSfJ テスト
497デフォルトの名無しさん
2018/02/16(金) 05:55:09.54ID:W1XJdyx1 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
498デフォルトの名無しさん
2018/05/23(水) 21:07:30.15ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HSR58
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HSR58
499sage
2018/06/08(金) 07:24:37.45ID:j+JfgiN4 ところでlabelsって関数の名前の由来って何?
しっくりこない
しっくりこない
500デフォルトの名無しさん
2018/06/17(日) 11:25:32.22ID:eEWfV0tw >>477
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
501デフォルトの名無しさん
2018/06/19(火) 02:22:17.89ID:q+1hh2rS >>500
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
502デフォルトの名無しさん
2018/07/04(水) 22:29:25.87ID:gFgZc5FG V3Z
503デフォルトの名無しさん
2018/07/05(木) 16:53:25.50ID:AeL6VB/V V3Z
504デフォルトの名無しさん
2018/07/13(金) 17:19:54.02ID:EPDxLdrK こないだ迄Windows10の64bit版ではDEPの絡みで動かないと思ってた、SBCL版のMaximaが、
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。
うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。
うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?
505504
2018/07/13(金) 17:28:05.78ID:EPDxLdrK SBCL自体を別途インストールしたのが効いてるのかも知れないなぁ…。
506デフォルトの名無しさん
2018/09/11(火) 03:59:06.82ID:u3nXUIwD Lispってwebフレームワークありますか?
一通りの機能のあるブログを作ったり出来るような
一通りの機能のあるブログを作ったり出来るような
507デフォルトの名無しさん
2018/10/03(水) 18:50:06.50ID:1GTVcIse 質問です。
Lispで書かれたLisp処理系はありますか?
Lispで書かれたLisp処理系はありますか?
508デフォルトの名無しさん
2018/11/03(土) 15:30:34.57ID:3XdSQ+AZ 中学卒業までにコモンリスプ極める!
509デフォルトの名無しさん
2018/11/14(水) 08:37:19.93ID:gqSz/09F roswellについての質問なんですが
ros init ファイル名
としたときできるファイルの中身の
(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)
って何ですか?
(ros:ensure-asdf)特にこれ
ros init ファイル名
としたときできるファイルの中身の
(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)
って何ですか?
(ros:ensure-asdf)特にこれ
510デフォルトの名無しさん
2018/11/17(土) 00:21:41.91ID:eQWBxdMf >>509
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?
511デフォルトの名無しさん
2018/12/02(日) 12:23:45.12ID:KPiqRYEn お前だれよ
512デフォルトの名無しさん
2019/01/08(火) 13:36:34.22ID:n4V6aMpj Common LispからC言語のモジュールを呼ぶ方法は簡単に見つかるのですが
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?
513デフォルトの名無しさん
2019/01/08(火) 18:04:16.67ID:kGjsEUq7 >>512
ただ別プロセスで処理系を起こして、そこの repl で評価できればいい・・というだけなら、 fork と exec で済むかも。
CからLisp関数を直接呼んだり、C関数でLispオブジェクトを直接扱うとかするのは、がっつり処理系依存だけど出来ることは出来る。
たぶんこの目的なら ECL が一番簡単だと思う。それっぽい例もあるし:
https://gitlab.com/embeddable-common-lisp/ecl/tree/develop/examples/embed
SBCL や Allegro CL でも出来るみたいだけど、かなり大変。
というのも、C関数が動いてる間にLisp処理系のGCが走ると死ぬ・・とか諸々あるので。一応リンクだけ:
http://www.sbcl.org/manual/#Calling-Lisp-From-C
https://franz.com/support/documentation/10.1/doc/foreign-functions.htm#lisp-from-c-1
ただ別プロセスで処理系を起こして、そこの repl で評価できればいい・・というだけなら、 fork と exec で済むかも。
CからLisp関数を直接呼んだり、C関数でLispオブジェクトを直接扱うとかするのは、がっつり処理系依存だけど出来ることは出来る。
たぶんこの目的なら ECL が一番簡単だと思う。それっぽい例もあるし:
https://gitlab.com/embeddable-common-lisp/ecl/tree/develop/examples/embed
SBCL や Allegro CL でも出来るみたいだけど、かなり大変。
というのも、C関数が動いてる間にLisp処理系のGCが走ると死ぬ・・とか諸々あるので。一応リンクだけ:
http://www.sbcl.org/manual/#Calling-Lisp-From-C
https://franz.com/support/documentation/10.1/doc/foreign-functions.htm#lisp-from-c-1
514デフォルトの名無しさん
2019/01/13(日) 15:30:06.78ID:awaCdOlx Lispでグラフィカルにステップ実行できる方法ってEmacsでSLIMEやるしかないですか?
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。
515デフォルトの名無しさん
2019/01/15(火) 05:34:30.77ID:lhwbzmDt >>514
「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。
https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB
「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。
https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB
516514
2019/01/15(火) 10:41:56.87ID:EvpJOxTU すみません、勘違いでした。
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?
517デフォルトの名無しさん
2019/01/16(水) 01:39:36.94ID:Q19T/bZz >>514
「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。
https://docs.racket-lang.org/drracket/debugger.html
「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。
https://docs.racket-lang.org/drracket/debugger.html
518デフォルトの名無しさん
2019/01/17(木) 06:22:05.82ID:W9irOPq+ Lispでドルマークって特別な意味ありますかね?正規表現とかナシで
519デフォルトの名無しさん
2019/01/17(木) 15:24:46.14ID:XV1+qWbe Land of Lisp、文字が小さくて読めない…(´;ω;`)
520デフォルトの名無しさん
2019/01/17(木) 19:09:16.06ID:Y7dh6bUh >>519
⊃ハズキルーペ
⊃ハズキルーペ
521デフォルトの名無しさん
2019/01/18(金) 15:25:03.51ID:6FOWYZfc >>518
standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax
readtable いじってたら分からない
standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax
readtable いじってたら分からない
522デフォルトの名無しさん
2019/01/19(土) 14:06:18.02ID:xfMx41aW だれかChocorateyにRoswell追加してクレメンス
523デフォルトの名無しさん
2019/01/19(土) 23:31:04.73ID:xfMx41aW Windows版Roswellでinstallコマンド出来ている方はいますか?
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。
524デフォルトの名無しさん
2019/01/20(日) 15:17:16.36ID:S2xiCEld 最近Lispを勉強し始めた超初心者です。
関数型言語も初めてです。
末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。
なにか他にメリットが有るのでしょうか。
関数型言語も初めてです。
末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。
なにか他にメリットが有るのでしょうか。
525デフォルトの名無しさん
2019/01/20(日) 15:44:22.07ID:wbmgJCyM Common LispじゃなくてSchemeだけど、こんな説明はどうでしょう
http://practical-scheme.net/docs/tailcall-j.html
http://practical-scheme.net/docs/tailcall-j.html
526はちみつ餃子 ◆8X2XSCHEME
2019/01/20(日) 21:45:08.14ID:/TyOXJfP >>524
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)
再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。
どっちを軸するかという説明の仕方の違いってだけ。
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)
再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。
どっちを軸するかという説明の仕方の違いってだけ。
527デフォルトの名無しさん
2019/01/20(日) 23:30:23.13ID:m7XAF6Qj >>524 が聞きたいのは、それを再帰として書くことの利点だと思う。
読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。
関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。
読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。
関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。
528はちみつ餃子 ◆8X2XSCHEME
2019/01/21(月) 00:09:20.61ID:seIeK7lJ あ〜、そっか。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。
529デフォルトの名無しさん
2019/01/21(月) 08:36:01.54ID:n4GEno5f ループはiの様なループ変数が必要だけど、これは変数への破壊的代入または再代入になる
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける
530デフォルトの名無しさん
2019/01/22(火) 03:37:24.22ID:rqabYXWq 526 にも書いてるけど、変数の破壊的代入と再帰と末尾呼び出しの最適化はそれぞれ別々のものだと思うけどね
(let ((i 10)
(closures nil))
(labels ((iter ()
(if (zerop i)
nil
(progn
(push (lambda () i) closures)
(decf i)
(iter)))))
(iter)
(mapcar #'funcall closures)))
⇒ (0 0 0 0 0 0 0 0 0 0)
(let ((i 10)
(closures nil))
(dotimes (i i)
(let ((i i))
(push (lambda () i) closures)))
(mapcar #'funcall closures))
⇒ (9 8 7 6 5 4 3 2 1 0)
(let ((i 10)
(closures nil))
(labels ((iter ()
(if (zerop i)
nil
(progn
(push (lambda () i) closures)
(decf i)
(iter)))))
(iter)
(mapcar #'funcall closures)))
⇒ (0 0 0 0 0 0 0 0 0 0)
(let ((i 10)
(closures nil))
(dotimes (i i)
(let ((i i))
(push (lambda () i) closures)))
(mapcar #'funcall closures))
⇒ (9 8 7 6 5 4 3 2 1 0)
531デフォルトの名無しさん
2019/01/22(火) 18:44:06.81ID:61UMm30F >>530
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(let ((i 10))
(labels ((iter (n closures)
(if (zerop n)
closures
(iter (1- n) (cons (lambda () i) closures)))))
(mapcar #'funcall (iter i nil))))
⇒ (10 10 10 10 10 10 10 10 10 10)
と書けば破壊的代入を避けてループが書ける
closuresも破壊的代入してたけど、Common Lispだと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(let ((i 10))
(labels ((iter (n closures)
(if (zerop n)
closures
(iter (1- n) (cons (lambda () i) closures)))))
(mapcar #'funcall (iter i nil))))
⇒ (10 10 10 10 10 10 10 10 10 10)
と書けば破壊的代入を避けてループが書ける
closuresも破壊的代入してたけど、Common Lispだと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ
532デフォルトの名無しさん
2019/01/23(水) 01:49:56.83ID:2DvRHl1Y すげぇ歴史がある言語のわりに全然ドキュメントもライブラリもないっすね…
533デフォルトの名無しさん
2019/01/23(水) 15:13:20.89ID:I7vJASel Forthをdisるのはやめれ
534デフォルトの名無しさん
2019/01/23(水) 16:46:55.68ID:HL71aJyT ドキュメントがまだないのはまだ始ってないから。
もう少し待て。いつか必ずブームがくるから。
もう少し待て。いつか必ずブームがくるから。
535デフォルトの名無しさん
2019/01/23(水) 18:13:57.77ID:iEoy0Btk lisp勉強中だが他言語しばらく触った後lispに戻ってくるとコード見るだけで笑えてくる
536デフォルトの名無しさん
2019/01/23(水) 20:17:08.92ID:W71jjF2T かっこかっこかっこかっこかっこばかり
537デフォルトの名無しさん
2019/01/23(水) 21:36:19.03ID:OIIGbqIY カッコいいね
538デフォルトの名無しさん
2019/01/24(木) 10:47:39.00ID:TePOwsZ1 Juliaってかっこいいですか?
539デフォルトの名無しさん
2019/01/24(木) 11:43:43.15ID:6qwP1ilP カッコはともだち こわくないよ
540デフォルトの名無しさん
2019/01/25(金) 14:34:14.18ID:07wWn8gG Juliaって何かと思ったら新しい言語か
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
541デフォルトの名無しさん
2019/01/26(土) 01:26:25.34ID:bl37ikQs > Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
って言うのは違うだろうと思う
って言うのは違うだろうと思う
542はちみつ餃子 ◆8X2XSCHEME
2019/01/26(土) 03:08:15.37ID:ixrTaENi LISP 的なマクロというのは
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。
ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。
ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。
543デフォルトの名無しさん
2019/01/26(土) 11:11:15.46ID:yVAkGzul TclはLisp的か
544デフォルトの名無しさん
2019/01/26(土) 13:04:05.95ID:HhE3t8c5 nil
545デフォルトの名無しさん
2019/01/29(火) 02:23:30.16ID:a0yta6qd Lispってカッコだらけで視認性悪いのに何で最後に)))))って閉じるコーディングスタイルがスタンダードっぽいの?
(some
(some
)
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが
(some
(some
)
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが
546デフォルトの名無しさん
2019/01/29(火) 02:59:58.51ID:jbL5Y/0k >>545
じゃあお前が広めれば?
じゃあお前が広めれば?
547デフォルトの名無しさん
2019/01/29(火) 13:01:27.96ID:yJ0I+sIY Lisperはカッコを見ずにインデントを見る
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる
548デフォルトの名無しさん
2019/01/29(火) 15:54:32.57ID:tEhI5kt3 slime の C-c C-] とか一気に全部かっこを閉じるコマンドを使うから、閉じ忘れとか気にしないなあ
549デフォルトの名無しさん
2019/01/29(火) 16:25:08.69ID:e8yOd/P9 XMLのタグみたいなもんだな。XMLがそれを理由に廃れたことも含めて。
550デフォルトの名無しさん
2019/01/29(火) 21:07:40.48ID:TIeo+FQH551デフォルトの名無しさん
2019/01/30(水) 12:44:23.33ID:eo/Tys4V >>550
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?
552デフォルトの名無しさん
2019/01/30(水) 12:52:38.76ID:Lcj20AkF エアプさん必死やねw
553デフォルトの名無しさん
2019/01/30(水) 13:13:38.82ID:cw4gcsqU (a))))
の部分のaだけ頻繁にコメントする時は不便に感じる
↓
(a)
)))
にしていいよね?
の部分のaだけ頻繁にコメントする時は不便に感じる
↓
(a)
)))
にしていいよね?
554デフォルトの名無しさん
2019/01/30(水) 13:46:07.35ID:jx8GGD5s わかる。
(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする
(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))
(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする
(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))
555デフォルトの名無しさん
2019/01/30(水) 13:59:53.27ID:eo/Tys4V556デフォルトの名無しさん
2019/01/30(水) 21:17:23.83ID:jAE5E/lv C系の言語から来ると最初は閉じ括弧の行がないのが気になるかもしれないが
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか
557デフォルトの名無しさん
2019/01/31(木) 12:29:13.76ID:lgLgsaY3 かっこの話題になるとわらわら湧いてくる陸リスパーさん達w
558デフォルトの名無しさん
2019/01/31(木) 15:46:41.09ID:aH0rCOCG うby最強
559デフォルトの名無しさん
2019/02/01(金) 01:45:52.05ID:pWouqX0G 海でLispするのが本物ってこと?
560デフォルトの名無しさん
2019/02/01(金) 07:48:11.81ID:eMw5OSNU >>559
なんや急に本物て?偽物の自覚でもあったんかおまえw
なんや急に本物て?偽物の自覚でもあったんかおまえw
561デフォルトの名無しさん
2019/02/01(金) 20:04:50.60ID:ZYD6dOWd 何んか湧いてますね
562デフォルトの名無しさん
2019/02/02(土) 01:05:09.97ID:JTaE88Yv にわか認定したい奴が沸いてんのかね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね
563デフォルトの名無しさん
2019/02/02(土) 07:45:51.33ID:DNtrULkT >>562
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
564デフォルトの名無しさん
2019/02/02(土) 08:23:24.85ID:UAuMFjv9 陸リスパーの定義を述べよ。
リスパーの定義を述べよ。
リスパーの定義を述べよ。
565デフォルトの名無しさん
2019/02/02(土) 09:51:20.74ID:BIkLOTfK トランクに入れるとか
566デフォルトの名無しさん
2019/02/02(土) 12:43:40.25ID:8UgzjBVu り…陸リスパー
567デフォルトの名無しさん
2019/02/02(土) 19:18:03.31ID:UAuMFjv9 おだろうね
568はちみつ餃子 ◆8X2XSCHEME
2019/02/02(土) 19:22:38.57ID:KkdP20n5 陸には「くが」という読みも有ります。
569デフォルトの名無しさん
2019/02/02(土) 22:26:20.61ID:zdLK2rou570デフォルトの名無しさん
2019/02/03(日) 11:47:11.28ID:o6ig8vkN 陸リスパーさん、案の定バカやったwww
571デフォルトの名無しさん
2019/02/03(日) 11:59:09.21ID:6SxaUJ1h ツマンネ
572デフォルトの名無しさん
2019/03/20(水) 17:01:33.89ID:Cy24MG6x も〜すぐ春ですね。
573デフォルトの名無しさん
2019/06/15(土) 16:34:52.25ID:5WxVHbel defmacroだとdestructuring bind?が使えて
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ
574デフォルトの名無しさん
2019/06/23(日) 06:22:35.07ID:DFwOz3vJ575デフォルトの名無しさん
2019/06/23(日) 17:17:52.99ID:MRp+xueZ576デフォルトの名無しさん
2019/06/26(水) 20:14:20.90ID:Y3pTO8/n コードを C や perl や Lisp や python に書き換えて速度比べていたんですが
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)
perl に負けるのは悔しいんですよ
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)
perl に負けるのは悔しいんですよ
577デフォルトの名無しさん
2019/06/26(水) 20:21:44.11ID:BI2PiUEB >>576
sbcl使えば?
sbcl使えば?
578デフォルトの名無しさん
2019/06/26(水) 20:46:18.82ID:Y3pTO8/n 早い
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは
0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは
0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
579デフォルトの名無しさん
2019/06/27(木) 01:23:25.87ID:dlyc1cFh CとPerlが2倍程度しか違わないとかどんなコードか気になる
普通二桁違ってもおかしくない
普通二桁違ってもおかしくない
580デフォルトの名無しさん
2019/06/27(木) 02:17:45.54ID:9Zxtgl6E C malloc とか使えばもっと早くなりそう
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA
perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA
perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw
581デフォルトの名無しさん
2019/06/27(木) 14:46:57.17ID:0O4NWcuW 最適化コンパイルしているか疑問
もっと早くなる気がする
もっと早くなる気がする
582デフォルトの名無しさん
2019/06/27(木) 17:18:17.57ID:9Zxtgl6E gcc でも gcc -Ofast -march=native でも
このコードは早さ変らなかった
Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
このコードは早さ変らなかった
Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
583デフォルトの名無しさん
2019/09/21(土) 00:38:07.12ID:xRjuzSxf squeakやpharoみたいな完全フリーなIDEってないの?
584デフォルトの名無しさん
2019/09/21(土) 00:44:47.91ID:9d3EeJ1d Emacs+Slimeで困ってないとかそういうのじゃなくて
585デフォルトの名無しさん
2019/09/21(土) 01:59:38.19ID:vpc6CIH7 IDEを強調するならフリーなやつは存在しないんじゃない
有償ならLispWorksとかあるけど
有償ならLispWorksとかあるけど
586デフォルトの名無しさん
2019/09/21(土) 02:01:25.30ID:vpc6CIH7 おそらくこんなのを求めてるんじゃないかな
ttp://www.lispworks.com/products/ide.html
ttp://www.lispworks.com/products/ide.html
587デフォルトの名無しさん
2019/09/21(土) 17:00:18.69ID:9d3EeJ1d squeakやpharoはフリーなのにLispはなんで誰もフリーで作らないの?
588デフォルトの名無しさん
2019/09/21(土) 17:11:00.50ID:icgczTg/ 君が造ろうと思わないなら同じ理由じゃね
589デフォルトの名無しさん
2019/09/21(土) 18:42:03.48ID:9d3EeJ1d じゃあ世界中のLispプログラマは丘リスパーなの?
590デフォルトの名無しさん
2019/09/21(土) 21:39:21.04ID:1BHZJNXJ w
591デフォルトの名無しさん
2019/09/21(土) 22:14:36.53ID:mq5euZR6 だからEmacs+slimeで事足りてるって言ってんだろ
頭悪いの?
頭悪いの?
592デフォルトの名無しさん
2019/09/21(土) 22:17:44.52ID:9d3EeJ1d マジアスペなのか何かのギャグで言ってるのかわかんないよw
それはわかってるし、そんなことは訊いてないんですけどw
それはわかってるし、そんなことは訊いてないんですけどw
593デフォルトの名無しさん
2019/09/22(日) 08:43:07.19ID:VSynpdi7 十分答えになっていると思うが?
594デフォルトの名無しさん
2019/09/22(日) 13:10:38.79ID:y42gsAly 漏れには ID:9d3EeJ1d がアスペに観える
595デフォルトの名無しさん
2019/09/22(日) 13:13:37.56ID:NWulzMwt だよね
596デフォルトの名無しさん
2019/09/23(月) 00:17:42.37ID:yOVeMM4I 質問はこれね、答えはyes/noしかありません
おk?
583 自分:デフォルトの名無しさん[] 投稿日:2019/09/21(土) 00:38:07.12 ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?
584 自分:デフォルトの名無しさん[sage] 投稿日:2019/09/21(土) 00:44:47.91 ID:9d3EeJ1d [1/4]
Emacs+Slimeで困ってないとかそういうのじゃなくて
おk?
583 自分:デフォルトの名無しさん[] 投稿日:2019/09/21(土) 00:38:07.12 ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?
584 自分:デフォルトの名無しさん[sage] 投稿日:2019/09/21(土) 00:44:47.91 ID:9d3EeJ1d [1/4]
Emacs+Slimeで困ってないとかそういうのじゃなくて
597デフォルトの名無しさん
2019/09/23(月) 11:11:12.88ID:3qdqqJ07 64bitのときって引数6個まではスタック使わずにレジスタ渡しなんだな
598デフォルトの名無しさん
2019/10/13(日) 19:14:39.59ID:5s4kkgRn 非LISPマシン(≒汎用CPU)上でのLISP処理系でCDRコーディングが流行らないのって何で?
599デフォルトの名無しさん
2019/10/14(月) 00:04:21.63ID:MCqb83NJ CDRコーディングはメモリを節約するためのものだけど、今時そんな事する必要がないからだろ
600デフォルトの名無しさん
2019/10/14(月) 02:33:00.31ID:4dMEwq0N 結局早く走らせようとすると面倒なコードにしかならなかった思い出
601デフォルトの名無しさん
2019/10/14(月) 22:36:05.59ID:4/RblZEa CDRコーディングでメモリ参照の局所性などは向上するのでむしろ現代のCPUで効果があるという話もある
CommonLispの場合,リストはイミュータブルでないので書き換えが発生すると間接参照に置き換わるためどこまで旨味があるかだが
CommonLispの場合,リストはイミュータブルでないので書き換えが発生すると間接参照に置き換わるためどこまで旨味があるかだが
602デフォルトの名無しさん
2019/10/15(火) 09:45:03.23ID:aaeMZMJi たかがリストの参照に条件分岐が必要になるから、むしろ現代のCPUには速度的に致命的なペナルティが有る
Lispはリストの使い勝手が良いからつい何でも使い勝ちだけど、ある程度以上の可変長のデータには可変長配列を使うべきだろう
Lispはリストの使い勝手が良いからつい何でも使い勝ちだけど、ある程度以上の可変長のデータには可変長配列を使うべきだろう
603デフォルトの名無しさん
2019/10/18(金) 01:17:14.39ID:eIYWybUZ 先生質問です!モダーンな言語に慣れた身としては、括弧よりもシンボルが大文字なことが気になります!
SQLと一緒で、なんだか怒られているような、コードに怒りの感情がくっついているような感触がします!
SQLと一緒で、なんだか怒られているような、コードに怒りの感情がくっついているような感触がします!
604デフォルトの名無しさん
2019/10/18(金) 03:05:27.14ID:YKg3bugE クラス名とインスタンス名がどっちも先頭小文字文化で区別がつかないことや
カプセル化を事実上放棄していることについても触れてあげてね
カプセル化を事実上放棄していることについても触れてあげてね
605デフォルトの名無しさん
2019/10/19(土) 00:39:53.49ID:X38Vw2Xm606デフォルトの名無しさん
2019/10/19(土) 04:41:27.18ID:VYVT60v2 >>603
知らず
知らず
607デフォルトの名無しさん
2019/10/19(土) 14:30:27.83ID:1oXfIKcZ608デフォルトの名無しさん
2019/10/26(土) 15:03:46.18ID:a/Ne+y1n setf 万能な感じだけど
オブジェクトの外からsetfしたら書きかえられたり
なんてことはないよな?
オブジェクトの外からsetfしたら書きかえられたり
なんてことはないよな?
609デフォルトの名無しさん
2019/10/31(木) 19:55:25.18ID:IHVIFECG cl4py で ~/.roswell/local-projects のパッケージ読む方法がわからないです
内部的には sbcl --script をpythonから実行しているので,
これと同じことを ros runでできれば良いはず
内部的には sbcl --script をpythonから実行しているので,
これと同じことを ros runでできれば良いはず
610デフォルトの名無しさん
2019/11/04(月) 19:09:58.20ID:BHJXlzaa ~/.roswell/local-projects
~/.quicklisp/local-projects
~/quicklisp/local-projects
全部統一したい.おすすめの設定はありませんでしょうか?
~/.quicklisp/local-projects
~/quicklisp/local-projects
全部統一したい.おすすめの設定はありませんでしょうか?
611デフォルトの名無しさん
2019/11/05(火) 15:20:02.48ID:mbkTm92O ln -s
612デフォルトの名無しさん
2019/11/14(木) 08:00:53.12ID:XNLPU+DY Dex:get でURL エンコードは自分で変換するしかないのでしょうか
http postでHmacなる暗号化かけてpostする方法がわかりまでん
http postでHmacなる暗号化かけてpostする方法がわかりまでん
613デフォルトの名無しさん
2019/11/14(木) 16:41:31.82ID:ot2dc8Ah https://quickref.common-lisp.net/index-per-library.html
ここに沢山あるパッケージは,名前から中身を類推するしかないの?
このパッケージはテキスト処理で,数値計算でみたいなカテゴリー分類が見たい
ここに沢山あるパッケージは,名前から中身を類推するしかないの?
このパッケージはテキスト処理で,数値計算でみたいなカテゴリー分類が見たい
614デフォルトの名無しさん
2019/11/15(金) 02:07:03.14ID:SpeXmILA site:https://quickref.common-lisp.net machine learning
とかでぐぐれば?
とかでぐぐれば?
615デフォルトの名無しさん
2019/11/15(金) 12:40:19.71ID:6WelP7wf https://github.com/mmaul/clml これ凄いですね
616デフォルトの名無しさん
2019/11/15(金) 13:23:21.62ID:76R0IrhI あなる
617デフォルトの名無しさん
2019/11/15(金) 22:00:06.65ID:EU/v6jRR 実践CLが適価で出ていたので次に読もうということでポチりました
それを引き取りに行きましたところ
ふらーっと棚を見たらPAIPとLOLとガウディ本が適価で置いてありやがりまして
全部いっちゃいました><
まだGentle Guideの最初の方読んでるところだとういうのに…どうすんだこれ
それを引き取りに行きましたところ
ふらーっと棚を見たらPAIPとLOLとガウディ本が適価で置いてありやがりまして
全部いっちゃいました><
まだGentle Guideの最初の方読んでるところだとういうのに…どうすんだこれ
618デフォルトの名無しさん
2019/11/16(土) 00:03:26.10ID:ITuC7LSd >>617
Lispマスターになったら言ってくれ
Lispマスターになったら言ってくれ
619デフォルトの名無しさん
2019/11/16(土) 00:04:46.81ID:ITuC7LSd Lispを極めた者だけが見えるものが有るという…
620デフォルトの名無しさん
2019/11/16(土) 00:22:31.74ID:BwABWAGp >>618
とりあえずこの順にこなしていくつもりだけど何年かかるかな・・・
https://gist.github.com/y2q-actionman/49d7587912b2786eb68643afde6ca192
とりあえずこの順にこなしていくつもりだけど何年かかるかな・・・
https://gist.github.com/y2q-actionman/49d7587912b2786eb68643afde6ca192
621デフォルトの名無しさん
2019/11/16(土) 00:45:08.22ID:ITuC7LSd622デフォルトの名無しさん
2019/11/17(日) 00:11:27.35ID:Rg5NJh7n オレがLispマスターになるために、誰かHyperspecを読みやすい日本語に翻訳してくれませんか
623デフォルトの名無しさん
2019/11/17(日) 09:59:42.64ID:X9AhIAwA はじめてなら先に Erlang やれ
Elixir じゃなくて Erlang な
Elixir じゃなくて Erlang な
624デフォルトの名無しさん
2019/11/17(日) 18:58:25.57ID:8cMlcBXZ625デフォルトの名無しさん
2019/11/17(日) 19:53:03.62ID:uNVU1LmK そういうわけでGNUのEmacs Lispプログラミング入門読み始めたのだ
626デフォルトの名無しさん
2019/11/23(土) 12:12:31.12ID:9GE+Zi9m627626
2019/11/23(土) 12:16:52.71ID:9GE+Zi9m コピーオンライトっていうもっと簡単な用語があった
orz
orz
628デフォルトの名無しさん
2019/12/28(土) 16:35:07.94ID:zdKgsTQK ここでMaximaの話したら駄目?
629デフォルトの名無しさん
2019/12/28(土) 16:58:47.35ID:i/tVhKl3 クソ虫ペダルの話題は他でやって
630デフォルトの名無しさん
2020/01/19(日) 21:09:24.20ID:e1ukXRkq 保守
631デフォルトの名無しさん
2020/02/13(木) 16:16:45.93ID:Zcn6rtH0 quicklispの動作確認のためのhollow worldしかない単純なパッケージってないのでしょうか?
632デフォルトの名無しさん
2020/02/15(土) 21:48:04.96ID:reYL48Kc >>587
smalltalkは良くも悪くもIDE込みの言語だからな。
smalltalkは良くも悪くもIDE込みの言語だからな。
633デフォルトの名無しさん
2020/02/20(木) 15:29:37.90ID:TfLGY2HC >>631
「動作確認」が何を意味するのか微妙だけど・・
Quicklisp client が入っているかどうかだけなら、REPL で
(ql:client-version)
とか打って "2019-02-16" とか返ってくるのかを見ればよさそう。
「動作確認」が何を意味するのか微妙だけど・・
Quicklisp client が入っているかどうかだけなら、REPL で
(ql:client-version)
とか打って "2019-02-16" とか返ってくるのかを見ればよさそう。
634デフォルトの名無しさん
2020/02/23(日) 16:33:42.33ID:rMYt9Lfm Pattern matchで一番使われているのはoptimaなんです?
速度なくて良いので、もっと実装が単純なの探してます
それからquicklispにonlispのコードまとまってるパッケージないですか
速度なくて良いので、もっと実装が単純なの探してます
それからquicklispにonlispのコードまとまってるパッケージないですか
635デフォルトの名無しさん
2020/02/23(日) 18:30:00.29ID:ZlpvVH2U 実装が単純ってのを基準にライブラリ選定するやついるか?
quicklispに教材は集積されてないんじゃないの.知らんけど
quicklispに教材は集積されてないんじゃないの.知らんけど
636デフォルトの名無しさん
2020/02/23(日) 19:56:19.38ID:buSGB+sr コモンリスプの最初の教科書として『これがLispだ』を読み始めた
最初の方で、読み進むためのツールとして「pp」というマクロが紹介されてるんだけど
SBCLで動かなくて困ってます
2バージョン紹介されてるんだけど、どこをどうしたら動きますか?
CL-USER> (defmacro pp (fun)
(list 'pprint
(list 'quote (append (list 'defun fun)
(cdr (symbol-function fun))))))
CL-USER> (defmacro pp (fun)
(list 'quote (list 'defun fun
(cadr (symbol-function fun))
(caddr (caddr (symbol-function fun))))))
ワーニングのメッセージもコピペしたほうが良いですか?
最初の方で、読み進むためのツールとして「pp」というマクロが紹介されてるんだけど
SBCLで動かなくて困ってます
2バージョン紹介されてるんだけど、どこをどうしたら動きますか?
CL-USER> (defmacro pp (fun)
(list 'pprint
(list 'quote (append (list 'defun fun)
(cdr (symbol-function fun))))))
CL-USER> (defmacro pp (fun)
(list 'quote (list 'defun fun
(cadr (symbol-function fun))
(caddr (caddr (symbol-function fun))))))
ワーニングのメッセージもコピペしたほうが良いですか?
637デフォルトの名無しさん
2020/02/23(日) 23:12:17.71ID:pcZQVic1 on lispのコードはポール・グレアムのサイトから落とせるよ
638デフォルトの名無しさん
2020/02/24(月) 00:14:28.43ID:ADNywXxE Macro expandの結果がslimeだと
#1=
みたいのなくて、全部代入されて展開されるのに
コマンドラインからだと、ところどころ出てくる
この代入みたいなの出てこないような設定出来ないのでしょうか
#1=
みたいのなくて、全部代入されて展開されるのに
コマンドラインからだと、ところどころ出てくる
この代入みたいなの出てこないような設定出来ないのでしょうか
639デフォルトの名無しさん
2020/02/25(火) 02:41:22.28ID:7uXswvK3640デフォルトの名無しさん
2020/02/25(火) 11:57:12.46ID:8lWyfop6641デフォルトの名無しさん
2020/02/25(火) 21:44:40.33ID:EXaHk6FB >>639
ありがとうございます!
ありがとうございます!
642デフォルトの名無しさん
2020/02/26(水) 15:29:30.05ID:DHrVhTjk …動いたは動いたけど、目的の動作ではないような…
関数定義のプリティプリントをするマクロなんですが…
関数定義のプリティプリントをするマクロなんですが…
643デフォルトの名無しさん
2020/02/26(水) 22:35:08.55ID:hFQlDZVm >>642
残念ながら、必ずしも function-lambda-expression で「関数定義」を得られるとは限りません。
nil を返す場合もあると言語仕様で定められています:
> The primary value, lambda-expression, is function's defining lambda expression, or nil if the information is not available.
http://www.lispworks.com/documentation/HyperSpec/Body/f_fn_lam.htm
SBCLの場合、ユーザー定義関数なら期待する結果になるようですが、
組込関数に対しては nil を返す実装がほとんどのようです(手元の処理系はすべて nil を返してきました)。
残念ながら、必ずしも function-lambda-expression で「関数定義」を得られるとは限りません。
nil を返す場合もあると言語仕様で定められています:
> The primary value, lambda-expression, is function's defining lambda expression, or nil if the information is not available.
http://www.lispworks.com/documentation/HyperSpec/Body/f_fn_lam.htm
SBCLの場合、ユーザー定義関数なら期待する結果になるようですが、
組込関数に対しては nil を返す実装がほとんどのようです(手元の処理系はすべて nil を返してきました)。
644デフォルトの名無しさん
2020/03/03(火) 21:49:43.84ID:JAknlLuJ clhsの読み方がわかんないんだけどpprintは代用にならないのかな
645デフォルトの名無しさん
2020/03/05(木) 03:14:59.23ID:2Ey3ZIKM httpクライアントはdexが一番メジャーなの?
646デフォルトの名無しさん
2020/03/05(木) 21:05:07.28ID:h922Dn8C >>529
ループで書くと変数への再代入が必要になるから〜
って関数型言語推しの文脈でよく言うけど
それが言うほど問題になる場面ってどれ位あるかね?
それにRubyのeachとかイテレータだと
ループ変数は隠蔽されててあまり使わないし
ますますそんな実害はない気がしてくる
ループで書くと変数への再代入が必要になるから〜
って関数型言語推しの文脈でよく言うけど
それが言うほど問題になる場面ってどれ位あるかね?
それにRubyのeachとかイテレータだと
ループ変数は隠蔽されててあまり使わないし
ますますそんな実害はない気がしてくる
647デフォルトの名無しさん
2020/03/05(木) 21:08:11.89ID:h922Dn8C >>542
Lispのプログラム自体もリストでしかないから
処理とデータの区別が必要なくて
メタプログラミングがしやすいって理屈は分かってる
問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
Lisp信者(というか教祖の)ポールグレアムとかはそう言ってるけど
ライブラリやドキュメントの充実の方が生産性上げる気がしてる
Lispのプログラム自体もリストでしかないから
処理とデータの区別が必要なくて
メタプログラミングがしやすいって理屈は分かってる
問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
Lisp信者(というか教祖の)ポールグレアムとかはそう言ってるけど
ライブラリやドキュメントの充実の方が生産性上げる気がしてる
648デフォルトの名無しさん
2020/03/05(木) 21:09:30.43ID:h922Dn8C649デフォルトの名無しさん
2020/03/05(木) 21:12:16.28ID:h922Dn8C650デフォルトの名無しさん
2020/03/05(木) 21:14:22.56ID:h922Dn8C651デフォルトの名無しさん
2020/03/05(木) 21:16:29.03ID:h922Dn8C652デフォルトの名無しさん
2020/03/05(木) 21:18:07.40ID:h922Dn8C653デフォルトの名無しさん
2020/03/05(木) 23:47:34.83ID:5jJ4qXDk >>647
> ライブラリやドキュメントの充実の方が生産性上げる気がしてる
ドンキ行けばなんでも売ってるから買えば済むけどそれは生産性高いのか
ドキュメントの充実とかいうのも所詮Qiitaにコピペできる手順が書いてあるかどうかだろ
> 問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
最近のわかりやすい事例でいうとライブラリやドキュメントが充実してないような量子コンピューティングでlisp使われてるわな
d-waveやrigetti
ゼロスタートでの生産性高いから採用されてんじゃないの
昔からlispはそういうところで使われてきたんだよな
> ライブラリやドキュメントの充実の方が生産性上げる気がしてる
ドンキ行けばなんでも売ってるから買えば済むけどそれは生産性高いのか
ドキュメントの充実とかいうのも所詮Qiitaにコピペできる手順が書いてあるかどうかだろ
> 問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
最近のわかりやすい事例でいうとライブラリやドキュメントが充実してないような量子コンピューティングでlisp使われてるわな
d-waveやrigetti
ゼロスタートでの生産性高いから採用されてんじゃないの
昔からlispはそういうところで使われてきたんだよな
654デフォルトの名無しさん
2020/03/07(土) 03:25:56.46ID:XQNdi0wU (list 1 2 3) = '( 1 2 3) ?
655デフォルトの名無しさん
2020/03/07(土) 08:36:38.96ID:meF2wfp3656デフォルトの名無しさん
2020/03/07(土) 14:34:31.81ID:z1zbB2pR >>654
=の意味による。
=の意味による。
657デフォルトの名無しさん
2020/03/11(水) 22:30:07.23ID:XKsESyyO >>656
?の意味わ?
?の意味わ?
658デフォルトの名無しさん
2020/03/17(火) 18:02:01.30ID:StMMVjQO 実践common lispの古本買ったのですが
LispBox落としてきて本に載ってるEmacs?Slime?わかんないけどショートカットキー試したら
ほとんど通らなくて絶望してる
前の持ち主はそこまででこの本捨てたみたい
(ここまではラインマーカーあり、手あと付きまくりで汚れてる
水滴の落ちた跡があるけど、泣いたのかもしれない)
LispBox落としてきて本に載ってるEmacs?Slime?わかんないけどショートカットキー試したら
ほとんど通らなくて絶望してる
前の持ち主はそこまででこの本捨てたみたい
(ここまではラインマーカーあり、手あと付きまくりで汚れてる
水滴の落ちた跡があるけど、泣いたのかもしれない)
659デフォルトの名無しさん
2020/03/17(火) 18:21:44.91ID:XIub247n なるほど
C言語の本でもポインタの説明が間違ってて詰むパターンか
C言語の本でもポインタの説明が間違ってて詰むパターンか
660デフォルトの名無しさん
2020/03/17(火) 18:38:29.75ID:y139aNvj かわいそうに
K&R本も難読で苦労した人も多かろう
K&R本も難読で苦労した人も多かろう
661デフォルトの名無しさん
2020/03/17(火) 21:41:37.12ID:v8kclrng ポインタの話を出して「それに比べたらお前の絶望なんて大したこと無い」ってか
Cはドメジャー言語、Lispはマイナー言語だぞ
Cはドメジャー言語、Lispはマイナー言語だぞ
662デフォルトの名無しさん
2020/03/17(火) 21:59:51.74ID:lqRJWXI0 実践common lispってそんなHow To本だったっけ?pathnameのはなしをよんでうげっとなったような記憶が。
>>661
lisp はマイナーなんかじゃなく、神話ですよ
lisp はマイナーなんかじゃなく、神話ですよ
664デフォルトの名無しさん
2020/03/17(火) 22:03:05.74ID:v8kclrng 読者も書籍も少ないという意味では同じ意味だろアスペ野郎
665デフォルトの名無しさん
2020/03/17(火) 23:19:20.47ID:lLOB6fa+ lisp初心者とプログラミング初心者のどっちなんだってやつ多いよな
pythonおすすめ
pythonおすすめ
666デフォルトの名無しさん
2020/03/18(水) 07:25:29.43ID:HGjE4cJ6 冒頭Emacsの使い方から書いてある、環境も提供してる
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね
667デフォルトの名無しさん
2020/03/18(水) 08:27:48.33ID:e34uYQaF LispBoxですが
カッコ全閉じ C-c C-q → undefined
関数コンパイル C-c C-c → [Condition of type SIMPLE-ERROR]
→戻るとリターンで評価が効かなくなってる
関数コンパイル M-x slime-compile-defun → 通る
どうすれば?
カッコ全閉じ C-c C-q → undefined
関数コンパイル C-c C-c → [Condition of type SIMPLE-ERROR]
→戻るとリターンで評価が効かなくなってる
関数コンパイル M-x slime-compile-defun → 通る
どうすれば?
668デフォルトの名無しさん
2020/03/18(水) 10:11:26.98ID:i4GVxo4Z669デフォルトの名無しさん
2020/03/18(水) 11:01:54.67ID:YWqpfRsi >>667
C-c C-c で slime-compile-defun は lisp-mode での割り当てです。
*slime-repl* バッファでは slime-interrupt が C-c C-c に割り当てられています。
C-c C-q は大分前になくなったようです。
今はカッコ全閉じは C-c C-]
これも lisp-mode での割り当てで、*slime-repl* バッファでは使えません。
もちろん設定すれば別ですが:
;; SLIMEのREPLバッファでも C-c C-] でカッコ全閉じ
(eval-after-load "slime-repl"
`(define-key slime-repl-mode-map (kbd "C-c C-]")
#'slime-close-all-parens-in-sexp))
C-c C-c で slime-compile-defun は lisp-mode での割り当てです。
*slime-repl* バッファでは slime-interrupt が C-c C-c に割り当てられています。
C-c C-q は大分前になくなったようです。
今はカッコ全閉じは C-c C-]
これも lisp-mode での割り当てで、*slime-repl* バッファでは使えません。
もちろん設定すれば別ですが:
;; SLIMEのREPLバッファでも C-c C-] でカッコ全閉じ
(eval-after-load "slime-repl"
`(define-key slime-repl-mode-map (kbd "C-c C-]")
#'slime-close-all-parens-in-sexp))
670デフォルトの名無しさん
2020/03/18(水) 11:04:51.07ID:YWqpfRsi なおREPLでは Ctrl+Enter で「カッコ全閉じして評価」ができます:
CL-USER> (list(list(list ;ここで Ctrl+Enter すると
↓
CL-USER> (list(list(list)))
((NIL))
CL-USER>
CL-USER> (list(list(list ;ここで Ctrl+Enter すると
↓
CL-USER> (list(list(list)))
((NIL))
CL-USER>
671デフォルトの名無しさん
2020/03/18(水) 11:32:38.80ID:i4GVxo4Z >>669
ありがとうございます!
LispBoxが古いせいなのか、C-c C-cが未定義なんですよね
C-c C-]も未定義と叱られます
>>670は通って全閉じしてエンターしてくれます
Emacs 23.2.1です
ここから貰ってきたものです
https://common-lisp.net/project/lispbox/
ありがとうございます!
LispBoxが古いせいなのか、C-c C-cが未定義なんですよね
C-c C-]も未定義と叱られます
>>670は通って全閉じしてエンターしてくれます
Emacs 23.2.1です
ここから貰ってきたものです
https://common-lisp.net/project/lispbox/
672デフォルトの名無しさん
2020/03/18(水) 11:39:38.76ID:i4GVxo4Z Lisp Cabinetも入れててこっちはslime2009-10-15でちょっと古いのか
*slime-repl sbcl*でC-c C-]が未定義と言われます
*slime-repl sbcl*でC-c C-]が未定義と言われます
673デフォルトの名無しさん
2020/03/18(水) 13:08:33.20ID:c+xBBuM1674デフォルトの名無しさん
2020/03/18(水) 14:08:10.88ID:YWqpfRsi >>669の「設定」はいったん忘れてください。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。
とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。
とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。
675デフォルトの名無しさん
2020/03/19(木) 01:34:16.75ID:kzb4sQto 閉じ括弧は自動入力に頼るべきだし、実際閉じ括弧を入力する事は皆無だ
676デフォルトの名無しさん
2020/03/20(金) 18:05:58.17ID:X6A/hsgw 実践common lispは序章に common lisp に興味があるすべての人に向けたもの とは書いてあるがプログラミング初心者にも向くとは書いてない
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ
677デフォルトの名無しさん
2020/03/20(金) 21:06:17.87ID:VDRHLCp0 だからって前提としてる環境で通らない事を書いてたら読者可哀相ではある
678デフォルトの名無しさん
2020/03/21(土) 07:40:12.04ID:5WNgmSYJ 実践は少なくとも10年前は本の通りそのまま動いたよ
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい
lispboxの代替品はいまならportacleだろうな https://portacle.github.io
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい
lispboxの代替品はいまならportacleだろうな https://portacle.github.io
679デフォルトの名無しさん
2020/03/21(土) 11:22:04.72ID:lNZ58Hb9 32bitのwin7ですのや…
680デフォルトの名無しさん
2020/03/21(土) 11:41:58.56ID:fW5UJNuz サバイバルなんとかって同人誌には導入の方法とか書いてないの?
681デフォルトの名無しさん
2020/03/21(土) 18:21:48.79ID:lNZ58Hb9 HDD買ってきてlinux入れるしかないかなぁ
どうせならlibreboot化してみっかなCL関係ないけど
どうせならlibreboot化してみっかなCL関係ないけど
682デフォルトの名無しさん
2020/03/23(月) 13:01:38.12ID:Anw2hEtg Portacle 解説スライドとかあるのか
https://www.slideshare.net/masatoi0/portacle-common-lisp
https://www.slideshare.net/masatoi0/portacle-common-lisp
683デフォルトの名無しさん
2020/03/24(火) 21:26:46.71ID:G3YLWB5X Lispworks買えばいいと思うよ。
684デフォルトの名無しさん
2020/03/25(水) 01:50:52.61ID:/V276iPY 幾らぐらいするの?3万までなら考える
685デフォルトの名無しさん
2020/03/25(水) 04:44:13.07ID:LMRkqywH 年間ライセンスで$1500から
686デフォルトの名無しさん
2020/03/25(水) 04:45:11.18ID:LMRkqywH 64bit版は$3000からだったわ
687デフォルトの名無しさん
2020/03/25(水) 09:45:21.75ID:L/38DGRQ ハイパースペックの日本語版が付いてたら考える
688デフォルトの名無しさん
2020/03/25(水) 22:37:29.70ID:SRZi3lVq689デフォルトの名無しさん
2020/09/04(金) 00:51:07.26ID:2/DOh4aN 思う所あって、とりあえず入門しようう・・・と
ttp://www.nct9.ne.jp/m_hiroi/clisp/index.html
ここ見ながらSBCLをWindowsに入れて始めました。
・・・うん、流石に数日で制覇は無理だし、当分はリファレンス見ながらじゃないと文法は頭に入らないかな。
ただもっと疑問なのは・・・私はインタプリタがBASIC以来で30年ばかりブランクあるのだけど、LISTやNEWやRENUMみたいなインタプリタへの命令ってどうなってるんでしょ。
定義した関数は実行できるけどコードはもう見れないなんてコトないよね。変数は確認できるけど。
ググって他の入門テキスト当たっても特に記述がないってのはどういうコトなんだ・・・かろうじてLOADがあった程度とか。
見落としてるのかな。
ttp://www.nct9.ne.jp/m_hiroi/clisp/index.html
ここ見ながらSBCLをWindowsに入れて始めました。
・・・うん、流石に数日で制覇は無理だし、当分はリファレンス見ながらじゃないと文法は頭に入らないかな。
ただもっと疑問なのは・・・私はインタプリタがBASIC以来で30年ばかりブランクあるのだけど、LISTやNEWやRENUMみたいなインタプリタへの命令ってどうなってるんでしょ。
定義した関数は実行できるけどコードはもう見れないなんてコトないよね。変数は確認できるけど。
ググって他の入門テキスト当たっても特に記述がないってのはどういうコトなんだ・・・かろうじてLOADがあった程度とか。
見落としてるのかな。
690デフォルトの名無しさん
2020/09/05(土) 14:10:39.36ID:Cjkr8hQ1 以下のエラー、対処法わかりますか?
$ ros install cxxxr/lem
すると、
Installing from github cxxxr/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
....................[1/3] System 'lem' found. Loading the system..
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
;
; Line: 62, Column: 20, File-Position: 2356
;
; Stream: #<SB-INT:FORM-TRACKING-STREAM
などとなり、インストールできません.
分かる人いますでしょうか。
MacOS Catalina 10.15.6
$ ros install cxxxr/lem
すると、
Installing from github cxxxr/lem
To load "lem":
Load 1 ASDF system:
lem
; Loading "lem"
....................[1/3] System 'lem' found. Loading the system..
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
;
; Line: 62, Column: 20, File-Position: 2356
;
; Stream: #<SB-INT:FORM-TRACKING-STREAM
などとなり、インストールできません.
分かる人いますでしょうか。
MacOS Catalina 10.15.6
691デフォルトの名無しさん
2020/09/05(土) 14:27:23.90ID:D6IgUwp/ The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
692デフォルトの名無しさん
2020/09/05(土) 22:32:24.15ID:dAk5cbFF asdf よりも、日本人が作った、anyenv を使えないの?
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
ruby 2.6.6, node 12.16.2 を入れた
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
ruby 2.6.6, node 12.16.2 を入れた
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
693デフォルトの名無しさん
2020/09/05(土) 23:32:01.77ID:wplCbP8B anyenvと比較されるのはroswellだと思うが
694デフォルトの名無しさん
2020/09/06(日) 05:38:11.06ID:2WTO0asO >>691
ありがとうございます。
次の段階に移りました。
下のように UIOP/OS:~ ばかりがillegal function callとなります。
どうしたら良いでしょうか?
Making core for Roswell...
building dump:/Users/user/.roswell/impls/x86-64/darwin/sbcl-bin/1.2.11/dump/lem-ncurses.core
; file: /Users/user/.roswell/lisp/quicklisp/dists/quicklisp/software/cffi_0.23.0/toolchain/bundle.lisp
; in: DEFUN BUNDLE-PATHNAME-TYPE
; ((UIOP/OS:OS-UNIX-P) "o")
;
; caught ERROR:
; illegal function call
; ((UIOP/OS:OS-WINDOWS-P)
; (IF (UIOP/OS:FEATUREP '(:OR :MINGW32 :MINGW64))
; "o"
; "obj"))
;
; caught ERROR:
; illegal function call
; ((UIOP/OS:OS-UNIX-P) "a")
;
; caught ERROR:
; illegal function call
ありがとうございます。
次の段階に移りました。
下のように UIOP/OS:~ ばかりがillegal function callとなります。
どうしたら良いでしょうか?
Making core for Roswell...
building dump:/Users/user/.roswell/impls/x86-64/darwin/sbcl-bin/1.2.11/dump/lem-ncurses.core
; file: /Users/user/.roswell/lisp/quicklisp/dists/quicklisp/software/cffi_0.23.0/toolchain/bundle.lisp
; in: DEFUN BUNDLE-PATHNAME-TYPE
; ((UIOP/OS:OS-UNIX-P) "o")
;
; caught ERROR:
; illegal function call
; ((UIOP/OS:OS-WINDOWS-P)
; (IF (UIOP/OS:FEATUREP '(:OR :MINGW32 :MINGW64))
; "o"
; "obj"))
;
; caught ERROR:
; illegal function call
; ((UIOP/OS:OS-UNIX-P) "a")
;
; caught ERROR:
; illegal function call
695692
2020/09/06(日) 07:12:16.75ID:rmQ2DAlK anyenv install --list
と入力すると、Lisp には対応してなさそう。すまんかった
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, luaenv, nodenv
phpenv, plenv, pyenv, rbenv, sbtenv
scalaenv, swiftenv, tfenv
と入力すると、Lisp には対応してなさそう。すまんかった
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, luaenv, nodenv
phpenv, plenv, pyenv, rbenv, sbtenv
scalaenv, swiftenv, tfenv
696デフォルトの名無しさん
2020/09/08(火) 08:07:17.84ID:+pvHuz8t lemはしょっちゅう壊れるから開発に参加できるくらいのスキルないと常用はむり
エディタの拡張書いてもAPIの変更ですぐ動かなくなるからエディタ好き以外には時間の無駄
エディタの拡張書いてもAPIの変更ですぐ動かなくなるからエディタ好き以外には時間の無駄
697デフォルトの名無しさん
2020/11/04(水) 21:31:17.19ID:9sV4Q56c 質問失礼します
LISPでLinux向けのDAWアプリケーション(seq24のような)小規模なものが作りたいのですが, SchemeとCommonLISPの選択だと後者で間違えないでしょうか?
また音系ライブラリの充実度とかも教えていただければ助かります
環境はdebianのsidにemacsとroswellです。
LISPでLinux向けのDAWアプリケーション(seq24のような)小規模なものが作りたいのですが, SchemeとCommonLISPの選択だと後者で間違えないでしょうか?
また音系ライブラリの充実度とかも教えていただければ助かります
環境はdebianのsidにemacsとroswellです。
698デフォルトの名無しさん
2020/11/05(木) 15:01:20.13ID:B9BQMK/O puredate使った方がいいでない?tcp/udpも使えるし、lispでサーバ書けばいいんじゃない
699デフォルトの名無しさん
2020/11/05(木) 15:25:37.28ID:B9BQMK/O 筋違いなこと書いたは忘れて
700デフォルトの名無しさん
2020/11/14(土) 11:02:53.04ID:7fHOS6NH 道はnilを生ず、nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。なるズルい帯に釣られて初めてLISP買っちまった
初めての人に向けた宣伝文…?
初めての人に向けた宣伝文…?
701デフォルトの名無しさん
2020/11/17(火) 01:07:55.57ID:k3t+4yVm map族で遊んで楽しんでるけどmapconだけ名前が変なの気になって仕方ないたすけて
対応するcar版のmapcanのnはnconcでわかるけどじゃあなんでmapcdnじゃないんだ
対応するcar版のmapcanのnはnconcでわかるけどじゃあなんでmapcdnじゃないんだ
702デフォルトの名無しさん
2020/11/17(火) 18:02:14.18ID:p11aQciX 漠然と concatenate の con かなーと思ってた
じゃあ can は何だよってなるけど
じゃあ can は何だよってなるけど
703デフォルトの名無しさん
2020/11/17(火) 19:37:22.55ID:j2x0ZSt2 あ、それでいいかありがとう
map CAr N-conc → mapcan
map cdr n-CONc → mapcon
腑に落ちた
map CAr N-conc → mapcan
map cdr n-CONc → mapcon
腑に落ちた
704デフォルトの名無しさん
2020/11/21(土) 16:35:59.11ID:S5mOPbU/ 多値をわざわざ実装する意味って何なんだろう?
truncate/remainderを一気に得られるのは確かに便利だけどさ
コンシング無しだからパフォーマンスが良い?
自分で書くときも(数個の、一様でない)リストを返すより、多値で返すのが良い習慣?
truncate/remainderを一気に得られるのは確かに便利だけどさ
コンシング無しだからパフォーマンスが良い?
自分で書くときも(数個の、一様でない)リストを返すより、多値で返すのが良い習慣?
705デフォルトの名無しさん
2020/11/22(日) 00:03:59.68ID:zjc8v2cC 入力と出力の対称性かな?
知らんけど
知らんけど
706デフォルトの名無しさん
2020/11/22(日) 06:14:03.03ID:WGYXQsl7 基本的な意義は最適化への期待だね。
リストで書くより意図が伝わりやすいから、実際には使われない値の計算を省くとかしやすいかもしれない。
多値を普通の値として扱うと先頭要素が返るってのもある。
メインとオマケみたいな関係にある値を多値で返すと、メインの値へのアクセスには car とか通さなくていいとか。
一つの値だけを返してた関数を拡張するとき、多値なら互換性を壊さずに他の値も返せるとか。
ただ LISP はリスト処理が得意な言語だから、迷ったらリストを使う方向でいいと思う。
リストで書くより意図が伝わりやすいから、実際には使われない値の計算を省くとかしやすいかもしれない。
多値を普通の値として扱うと先頭要素が返るってのもある。
メインとオマケみたいな関係にある値を多値で返すと、メインの値へのアクセスには car とか通さなくていいとか。
一つの値だけを返してた関数を拡張するとき、多値なら互換性を壊さずに他の値も返せるとか。
ただ LISP はリスト処理が得意な言語だから、迷ったらリストを使う方向でいいと思う。
707デフォルトの名無しさん
2020/11/23(月) 11:01:48.80ID://ZJMWym なぜ未だにLispなのか?
Lispはメモリアクセスが演算と同じかむしろ早かったような時代に作られた言語。
キャッシュ付きのパイプライン方式のプロセッサとは相性が悪い。
メモリをポインターでたぐりまくるのでは性能が出ない。
また、スレッド並列化や分散並列化は難しいだろ?
Lispはメモリアクセスが演算と同じかむしろ早かったような時代に作られた言語。
キャッシュ付きのパイプライン方式のプロセッサとは相性が悪い。
メモリをポインターでたぐりまくるのでは性能が出ない。
また、スレッド並列化や分散並列化は難しいだろ?
708デフォルトの名無しさん
2020/11/23(月) 11:37:20.81ID:Trrr2V1M 型付けまくって配列メインならcに並ぶパフォーマンス出るだろ
まああんまり使い過ぎるとlispっぽくなくてlispである意味なくなっちゃうんですけどね
まああんまり使い過ぎるとlispっぽくなくてlispである意味なくなっちゃうんですけどね
709デフォルトの名無しさん
2020/11/23(月) 13:23:39.22ID:XVVIWvW3 マクロはまだ一線級だから…
710デフォルトの名無しさん
2020/11/23(月) 13:36:57.00ID:Trrr2V1M そもそもパフォーマンスの定義がlispでは難しい
極論を言えば環境に依らない計算は全てコンパイル時に済ますように(普通な見た目で)書けるし
他言語コンパイラにも定数畳み込みあるけどほんと微々たるもんだ
まあ、個々に良いとこ挙げても結局Lisp Is Syntactically Pureが全て
これがただ一つの本質
極論を言えば環境に依らない計算は全てコンパイル時に済ますように(普通な見た目で)書けるし
他言語コンパイラにも定数畳み込みあるけどほんと微々たるもんだ
まあ、個々に良いとこ挙げても結局Lisp Is Syntactically Pureが全て
これがただ一つの本質
711デフォルトの名無しさん
2020/11/23(月) 15:12:17.50ID:b5+ZYIc/ なぜlispなのか。そりは処理系がつくりやすいからでは。で、なぜForthではないんかと。
712デフォルトの名無しさん
2020/11/23(月) 19:07:05.19ID:sOtYoYn2 lispは変態だけどforth程じゃないから
713デフォルトの名無しさん
2020/11/24(火) 05:55:47.58ID:J3kRb2mj 構文解析がほぼ不要だから、簡単な LISP 処理系を書くってのは演習とかで見かけるけど…
それを目当てに言語を選ぶことってあんまりないと思う。
LISP の強みはマクロだよ。
リスト処理が得意な言語で、コードもリストとして書いてるから、メタプログラミングがやりやすい。
それを目当てに言語を選ぶことってあんまりないと思う。
LISP の強みはマクロだよ。
リスト処理が得意な言語で、コードもリストとして書いてるから、メタプログラミングがやりやすい。
714デフォルトの名無しさん
2020/11/24(火) 10:56:20.49ID:4gr82zpM そうなん?Luaみたいにゲームのシナリオスクリプト記述用として需要があるのかと。
うちゲームじゃないけど使ってるよ
うちゲームじゃないけど使ってるよ
715デフォルトの名無しさん
2020/11/25(水) 00:14:34.22ID:qDndbwAs スクリプト用に LISP 組み込む形って、 Emacs くらいしか生き残ってないよね…
相性自体は悪くないはずなんだけど。
Lua とかのほうが手を出しやすいんだろうね。
相性自体は悪くないはずなんだけど。
Lua とかのほうが手を出しやすいんだろうね。
716デフォルトの名無しさん
2020/11/25(水) 01:05:02.44ID:qa6Te+em ポータブルが取り柄、知っていればどんな環境でもlispにできる
(gcを考えない)lisp実装はワンライナーまであるし
慣れた関数マクロも使いたきゃ足りなきゃ実装例コピペすればいい
schemeはwebの仕様書に網羅的な実装例、clは…なんだろ
cltl2、特にappendixあたりか
おれはbackquoteの実装例が全くプリミティブじゃないのに驚いた
(gcを考えない)lisp実装はワンライナーまであるし
慣れた関数マクロも使いたきゃ足りなきゃ実装例コピペすればいい
schemeはwebの仕様書に網羅的な実装例、clは…なんだろ
cltl2、特にappendixあたりか
おれはbackquoteの実装例が全くプリミティブじゃないのに驚いた
717デフォルトの名無しさん
2020/11/25(水) 01:16:03.51ID:qa6Te+em 拡張言語にemacsみたいな生lispはちょっとなあ…
今更lispを勉強しようって人少ないだろうし、せめて()を隠蔽しないと
emacsはオモチャとしては惹かれるんだけど、正直vimの方が使いやすいごめん(ポールもvi派だし)
今更lispを勉強しようって人少ないだろうし、せめて()を隠蔽しないと
emacsはオモチャとしては惹かれるんだけど、正直vimの方が使いやすいごめん(ポールもvi派だし)
718デフォルトの名無しさん
2020/11/25(水) 03:57:24.38ID:eHKzIqWP guile採用してるのはそれなりにある
gimpやgnucashとか
gimpやgnucashとか
719デフォルトの名無しさん
2020/11/25(水) 05:23:23.30ID:gnG0Qzbx ここcommon lispスレだよオレlisp話はlispスレでやれば
720デフォルトの名無しさん
2020/11/25(水) 09:23:58.22ID:Eovv5MKD こんな過疎スレにも警察が
721デフォルトの名無しさん
2020/11/25(水) 10:50:31.91ID:m/dxKoiX 今時のcommon lispの開発環境はroswellとemacsをインストールすれば完了?
722デフォルトの名無しさん
2020/11/25(水) 11:29:02.66ID:NHQccPME Lispworks買えばおk
723デフォルトの名無しさん
2020/11/25(水) 11:50:45.95ID:qa6Te+em roswellは仮想環境作って真面目な開発&テストするならオススメ
clの処理系はオプション指定法がバラバラなのでそれもラップしてくれる
rcファイルもroswellが管理する
カジュアル用途ならオススメできない
ホーム直下の深い階層にバージョン違いの処理系やライブラリがバージョン毎にズラズラ
普及してるsbclとclispを生で普通に使えばよいよ
2種類rcファイル書くくらいなんでもない
clの処理系はオプション指定法がバラバラなのでそれもラップしてくれる
rcファイルもroswellが管理する
カジュアル用途ならオススメできない
ホーム直下の深い階層にバージョン違いの処理系やライブラリがバージョン毎にズラズラ
普及してるsbclとclispを生で普通に使えばよいよ
2種類rcファイル書くくらいなんでもない
724723
2020/11/25(水) 13:43:13.28ID:oErTV+Ij えっとつまり複雑なので初心者には何が何だか分からんくなるのがオチ、ということ
725デフォルトの名無しさん
2020/11/25(水) 15:06:11.59ID:NHQccPME Lispworks買えばおkって事だよな
726721
2020/11/25(水) 20:12:44.90ID:81nZxk7t727デフォルトの名無しさん
2020/11/26(木) 15:02:52.37ID:tQ2i07w3 上の人ではないのだけれどLispworksでSLIMEみたいに関数の仮引数をミニバッファに表示させることはできますか?
728デフォルトの名無しさん
2020/11/26(木) 15:07:35.61ID:9RIVN6I5 >>727
できるお
できるお
729デフォルトの名無しさん
2020/11/26(木) 17:14:45.91ID:tQ2i07w3 どのようにすればできるのでしょうか
730デフォルトの名無しさん
2020/11/26(木) 19:07:14.13ID:tQ2i07w3 C:\Program Files\LispWorks Personal\lib\7-1-0-0\examples\editor\commands\space-show-arglist.lisp
をロードしたら表示できましたありがとうございます。
をロードしたら表示できましたありがとうございます。
731デフォルトの名無しさん
2020/11/26(木) 19:18:00.22ID:eYZ/oymH quickdocsのサービス終了してたんだけど代わりになるようなサイトできたの?
それとも純粋に終了しただけ?
それとも純粋に終了しただけ?
732デフォルトの名無しさん
2020/11/26(木) 19:35:40.66ID:9RIVN6I5 lw-add-ons
使うのもいいお
使うのもいいお
733デフォルトの名無しさん
2020/11/26(木) 19:36:10.65ID:9RIVN6I5 >>732
Lispworksのはなしね
Lispworksのはなしね
734デフォルトの名無しさん
2020/11/26(木) 19:44:24.10ID:9RIVN6I5 ctrl+Shift+@
日本語キーボードなら。
日本語キーボードなら。
735デフォルトの名無しさん
2020/11/26(木) 19:51:18.89ID:tQ2i07w3 >>734
こっちのが見やすいしかっこいいですね、ありがとうございます。
こっちのが見やすいしかっこいいですね、ありがとうございます。
736デフォルトの名無しさん
2020/11/26(木) 19:51:29.13ID:9RIVN6I5 ctrl+`
だな
だな
737デフォルトの名無しさん
2020/11/26(木) 21:58:41.59ID:GUNaPZAO738デフォルトの名無しさん
2020/11/27(金) 07:47:10.66ID:uZfb8IM8 >>737
文句つけた奴がやらないパターンじゃないの…
文句つけた奴がやらないパターンじゃないの…
740デフォルトの名無しさん
2020/12/01(火) 23:19:30.12ID:3q2HDqZy 貼れよ
741デフォルトの名無しさん
2020/12/01(火) 23:56:36.13ID:GAF0pbTu あれ一晩バッチ回せば更新できるみたいな感じじゃなかったんだ
742デフォルトの名無しさん
2020/12/05(土) 07:13:44.24ID:xYxBposk 質問です。
(ql:quickload :burgled-batteries)
としたら、
Unable to determine Python include directory.
といわれます。
どうしたら良いのですか?
(ql:quickload :burgled-batteries)
としたら、
Unable to determine Python include directory.
といわれます。
どうしたら良いのですか?
743デフォルトの名無しさん
2020/12/05(土) 19:42:21.09ID:9aa118rN744デフォルトの名無しさん
2020/12/14(月) 17:59:11.95ID:R1A1Q73A 「Lispは数学そのものです」って言われてるけどどの辺が数学なのですか?
Lispを深く学べば分かる?
Lispを深く学べば分かる?
745デフォルトの名無しさん
2020/12/14(月) 20:50:21.89ID:EKcwa4Mw チャイティンが言ってそう。
746デフォルトの名無しさん
2020/12/14(月) 20:56:25.02ID:87NGWabX 聞いたことないけど、関数型で文が全部式なとこかな
747デフォルトの名無しさん
2020/12/14(月) 22:47:22.40ID:w+G2gx4f ラムダ計算を元にしてるからだろうね
ただ関数型言語はみんなそうだけどね
ただ関数型言語はみんなそうだけどね
748デフォルトの名無しさん
2020/12/16(水) 13:57:03.43ID:4v/YyiUF その手の謳い文句は(マクロや状態を考えなければ)文法が数学でモデル化しやすい程度にシンプル、意の事が多いとおもう
まあ数学程度で測れるほど本気のlispは浅くないから真に受けんな
まあ数学程度で測れるほど本気のlispは浅くないから真に受けんな
749デフォルトの名無しさん
2020/12/16(水) 16:54:05.29ID:ZPNjPXCu >>748のlisp本出版に期待
750デフォルトの名無しさん
2020/12/24(木) 18:57:03.05ID:pBBvR81h751デフォルトの名無しさん
2020/12/24(木) 23:30:50.89ID:9noM35Vy752デフォルトの名無しさん
2020/12/25(金) 23:52:52.13ID:eFBWMWd+ luaはかなり早い段階で商用ゲームに組み込まれて成功してるな
homeworldシリーズとか
なぜなのか
homeworldシリーズとか
なぜなのか
753デフォルトの名無しさん
2020/12/26(土) 00:35:10.68ID:Ip/MnrvF >>752
luaは配列が1から始まるってだけで組み込むのを拒否られた思い出が有る
luaは配列が1から始まるってだけで組み込むのを拒否られた思い出が有る
754デフォルトの名無しさん
2020/12/26(土) 08:42:12.14ID:1pHBrKBh >>752
実行速度とサイズと単純さとコルーチン
実行速度とサイズと単純さとコルーチン
755デフォルトの名無しさん
2020/12/26(土) 16:34:04.29ID:wX3nlbuy >>753
smalltalk以外で0オリジンじゃない言語あったんか…
smalltalk以外で0オリジンじゃない言語あったんか…
756デフォルトの名無しさん
2020/12/26(土) 17:32:13.19ID:dAAAQq7y Julia
757デフォルトの名無しさん
2020/12/27(日) 00:53:46.18ID:dOR5xd2b Commonlispよりもほかの言語が詳しいみなさん
758デフォルトの名無しさん
2020/12/29(火) 09:19:59.20ID:IpOZccOp >>753
んなアホな、Fortranに限らず科学計算界隈の慣習だろ、意識高い系に流行ってるJuliaも1ベース
んなアホな、Fortranに限らず科学計算界隈の慣習だろ、意識高い系に流行ってるJuliaも1ベース
759デフォルトの名無しさん
2020/12/29(火) 09:22:42.46ID:IpOZccOp >>757
言語ヲタしてると最終的にフリーダムなlispに行き着くのだよ
言語ヲタしてると最終的にフリーダムなlispに行き着くのだよ
760デフォルトの名無しさん
2020/12/29(火) 18:01:49.07ID:PE0cUsk/ >>758
ゲームに組み込むには、ゲーム自体がC(C++)で作られてるから、0ベースじゃないとワケわからなくなる
ゲームに組み込むには、ゲーム自体がC(C++)で作られてるから、0ベースじゃないとワケわからなくなる
761デフォルトの名無しさん
2020/12/30(水) 12:03:40.00ID:mB8dSyUZ まあそれは仕方ないんでね
Fortranはデフォルトがそうなだけでインデックス範囲は負も含めて指定できるし好きにしたらいいよ
むしろcへ組み込む用途で問題なのはcと互換性のある型や呼び出し規約、メモリ配列使ってるかどうかだろ
clにcffiがあるように、Fortranもcと互換の型も使えるようになったし、cでは速度が足りない数値計算ライブラリの多くは比較的書きやすいcをグルー言語にするのが主流
Fortranはデフォルトがそうなだけでインデックス範囲は負も含めて指定できるし好きにしたらいいよ
むしろcへ組み込む用途で問題なのはcと互換性のある型や呼び出し規約、メモリ配列使ってるかどうかだろ
clにcffiがあるように、Fortranもcと互換の型も使えるようになったし、cでは速度が足りない数値計算ライブラリの多くは比較的書きやすいcをグルー言語にするのが主流
762デフォルトの名無しさん
2020/12/30(水) 12:11:05.81ID:mB8dSyUZ Guy Steeleはほんと天才だと思うわ
cltl2はバイブル、嫌々使われてた古代言語Fortranを魔改造してHPC界を独占
Java?知らない子ですね…
cltl2はバイブル、嫌々使われてた古代言語Fortranを魔改造してHPC界を独占
Java?知らない子ですね…
763デフォルトの名無しさん
2020/12/30(水) 21:14:41.53ID:Fl1Xq86P764デフォルトの名無しさん
2020/12/30(水) 22:03:02.87ID:mB8dSyUZ rationale的な事や不採用になったよ注釈とか見る限り結構標準に関わってるんじゃないの
セカンドオーサーになってるschemeよりは割合少ないと思うけど、なんか読み物的なのないんかね?
セカンドオーサーになってるschemeよりは割合少ないと思うけど、なんか読み物的なのないんかね?
765デフォルトの名無しさん
2021/01/01(金) 19:14:10.70ID:jdWcRCau 随分昔の話題掘り返してなんだけど>>551
readable lispってのいい感じだと思うけどどうよ
https://sourceforge.net/p/readable/wiki/Common-lisp-tutorial/
まあインデントに関してはelseとかシンボル埋めないと慣れた人でないと読みにくいかな、オレオレなら構わんが
関数記法とinfixのサブセット添える程度なら初見で分かる
readable lispってのいい感じだと思うけどどうよ
https://sourceforge.net/p/readable/wiki/Common-lisp-tutorial/
まあインデントに関してはelseとかシンボル埋めないと慣れた人でないと読みにくいかな、オレオレなら構わんが
関数記法とinfixのサブセット添える程度なら初見で分かる
766デフォルトの名無しさん
2021/01/01(金) 23:43:40.40ID:eOUUBYDG 妙なシンタックスにしてまでlisp書く意味ないやんあほなん
767デフォルトの名無しさん
2021/01/08(金) 15:33:14.87ID:P1vdNW4e R Studioから、Common Lisp(SBCL)のREPLを使えるように出来ないのかな?
768デフォルトの名無しさん
2021/01/22(金) 15:32:52.46ID:SKKILF9F 一番バグが少なくなる言語は何だろうと思って検索してたんだけど
Lispのバグ発生率はどんな感じ?
Lispのバグ発生率はどんな感じ?
769デフォルトの名無しさん
2021/01/22(金) 22:20:19.77ID:n5D5pWe7 そんなのありすぎてどうとも答えられん
770デフォルトの名無しさん
2021/01/22(金) 23:58:59.39ID:XFgLuzCc >>768
COBOLとか言われたら逆にどうすんのか知りたいw
COBOLとか言われたら逆にどうすんのか知りたいw
771デフォルトの名無しさん
2021/01/25(月) 14:15:55.11ID:KT5/fGKR ありすぎるけどtraceとmacroexpandパワーでデバッグは楽なので気にすんな
disassembleやfunction-lambda-expressionやsource-location系もたぶん処理系依存?(大体あると思うけど)
ちょっとしか触ってないがschemeはインスペクタが統一されてない感じ?がある
disassembleやfunction-lambda-expressionやsource-location系もたぶん処理系依存?(大体あると思うけど)
ちょっとしか触ってないがschemeはインスペクタが統一されてない感じ?がある
772デフォルトの名無しさん
2021/01/25(月) 14:17:00.31ID:KT5/fGKR 形式的に見つけられるバグは絶対許さない言語はML系だろうな、ocamlとか
773デフォルトの名無しさん
2021/01/25(月) 22:05:41.34ID:eqLbENm4 traceとmacroexpandパワーでデバッグが楽ちんだとおもったときが一回もない
774デフォルトの名無しさん
2021/01/26(火) 21:21:48.32ID:+x6NTk+g う、うむ…
lisp2dotおすすめ
慣れると変な繋がり方してるのぱっと見でわかるようになる
lisp2dotおすすめ
慣れると変な繋がり方してるのぱっと見でわかるようになる
775デフォルトの名無しさん
2021/01/27(水) 13:51:29.88ID:0Z/Evltn quicklispって必要?quicklisp必要になったことないんだけど
776デフォルトの名無しさん
2021/01/28(木) 04:27:57.25ID:52TUUvk8 >>775
他言語だと好き勝手に投稿されてるマネージャが主だけど、qlはちゃんとメンテ精選してる人が居るのでありがたいよ
トップライブラリならちゃんと開発が回ってるからいいけど、準有名程度くらいだとオリジナルの更新数年無し、個人フォークが何十もあって、どれ使えばいいか&何が違うかよくわからんやろ
ただインストーラとしてはすごい便利なんだけど、qlコマンドは殆ど呼んでないな
あちこち要らないとこ読みに行って起動に10秒かかる(よね?)
セットアップでrcに追加される"quicklisp/setup.lisp"を消して、勝手に起動しないようにすると快適
(require 'asdf)で置き換えてqlのディレクトリをパスに加え、(asdf:load-system 'sysname) 等で読み込めば一瞬だし、当然バックエンドのasdfのapiの方が粒度が細い、再コンパイルも防げる
ffi等含め静的にlispイメージをダンプして普段使いするよりずっと便利
他言語だと好き勝手に投稿されてるマネージャが主だけど、qlはちゃんとメンテ精選してる人が居るのでありがたいよ
トップライブラリならちゃんと開発が回ってるからいいけど、準有名程度くらいだとオリジナルの更新数年無し、個人フォークが何十もあって、どれ使えばいいか&何が違うかよくわからんやろ
ただインストーラとしてはすごい便利なんだけど、qlコマンドは殆ど呼んでないな
あちこち要らないとこ読みに行って起動に10秒かかる(よね?)
セットアップでrcに追加される"quicklisp/setup.lisp"を消して、勝手に起動しないようにすると快適
(require 'asdf)で置き換えてqlのディレクトリをパスに加え、(asdf:load-system 'sysname) 等で読み込めば一瞬だし、当然バックエンドのasdfのapiの方が粒度が細い、再コンパイルも防げる
ffi等含め静的にlispイメージをダンプして普段使いするよりずっと便利
777デフォルトの名無しさん
2021/01/28(木) 04:41:35.03ID:52TUUvk8 月例更新と各プラットフォーム&処理系のグリッドビルドテストまでしてるのに、肝心のqlクライアントの最新版が8年前更新のゴミクズなのはなんでなん
教えてエライ人
教えてエライ人
778デフォルトの名無しさん
2021/01/29(金) 18:34:12.35ID:++iCW4cX 5chとはいえゴミクズとかよく書けたもんだよな
779デフォルトの名無しさん
2021/02/03(水) 23:16:18.90ID:k5h7XlDY 最近CLで書かれたカッコいいアプリとかありますか?
780デフォルトの名無しさん
2021/02/05(金) 15:45:28.69ID:7jKMsej2 ごめん言い過ぎた、お世話になってます
781デフォルトの名無しさん
2021/02/06(土) 04:19:51.16ID:oQfB5lBJ 最近書かれたというか、最近のCASのバックエンドはほぼほぼmaximaだったりする
歴史こそ古いが、急にフリーCASシェアNo1(たぶん…)になったので
PythonでもCASをやってるけど、Pythonで一番高機能&人気あるSageMathの高度な部分はほぼmaximaラッパで、ブロブである必要が無い部分はサブセットのSymPyに投げる構成(あと少しのmagma
maxima自体はalgol風に書くんだけど、algol度で言えばPythonに劣るし、もちろんlispでも書けるけどちょっとワークアラウンドが面倒…
歴史こそ古いが、急にフリーCASシェアNo1(たぶん…)になったので
PythonでもCASをやってるけど、Pythonで一番高機能&人気あるSageMathの高度な部分はほぼmaximaラッパで、ブロブである必要が無い部分はサブセットのSymPyに投げる構成(あと少しのmagma
maxima自体はalgol風に書くんだけど、algol度で言えばPythonに劣るし、もちろんlispでも書けるけどちょっとワークアラウンドが面倒…
782デフォルトの名無しさん
2021/02/06(土) 04:20:36.20ID:oQfB5lBJ 理由が抜けてた
要はPython様々ですな
要はPython様々ですな
783デフォルトの名無しさん
2021/02/06(土) 16:16:42.00ID:mt4J2iOm lemをインストールしたのにコマンドラインから認識しない…
roswellは入ってて動いてるんだけど
roswellは入ってて動いてるんだけど
784デフォルトの名無しさん
2021/02/06(土) 21:39:13.96ID:mt4J2iOm >>696を見て自分にはlemは無理そうなので止めときます
785デフォルトの名無しさん
2021/02/07(日) 07:44:25.19ID:A1tdyoeU lispで書けるvimがあれば最高なのになあと思ってたらlemが出たけどまだ時期が早い
応援だけしてる
応援だけしてる
786デフォルトの名無しさん
2021/02/07(日) 13:02:03.70ID:DNfxGtTi lemはgithubに登録されたのが2015/8/5だから、結構時間は経ってるな
787デフォルトの名無しさん
2021/02/08(月) 12:20:16.02ID:fHsImmU3 まださわりだがClozureCLなかなかいいな
objcのインターフェース持ってる関係でtcl/tkで面倒なことしなくてもいいし
スタンドアロンも作れる
とりあえずslimeで使えるようにしてぼちぼちやってみるわ
objcのインターフェース持ってる関係でtcl/tkで面倒なことしなくてもいいし
スタンドアロンも作れる
とりあえずslimeで使えるようにしてぼちぼちやってみるわ
788デフォルトの名無しさん
2021/02/08(月) 15:14:00.45ID:FcZ190S6 packageをアクセサが簡潔な構造体として使ってるけど、他人が使ってるの見たことない
なんか不都合あるのかな?
(make-package :cyan)
(setf cyan::r 0
cyan::g (sq 13)
cyan::b (sq 15))
cyan::g ; => 169
みたいな感じで
最後の行以外は(defun make-color (name r g b)…)みたいなに包んでコンストラクタに(あと怒られないようrgbをdefvarしたり初期値入れたり)
チェーン式記法だと補完が効くのが便利かと思ってる
(make-color :magenta ...)
(defun inc-chroma (col) ...)
(setf :vivid-cyan (inc-chroma :cyan))
みたいにパッケ渡して返って来た新パッケをbindしたり
make-package(のラッパ)にgensym渡して無名インスタンスをバコバコ作ったり
実は文法の変なdefstructが嫌いなだけだったり…
暗黙のアクセサ作ってくれて、それ故に人のコードも暗黙の了解で読めるのはありがたいけど
なんか不都合あるのかな?
(make-package :cyan)
(setf cyan::r 0
cyan::g (sq 13)
cyan::b (sq 15))
cyan::g ; => 169
みたいな感じで
最後の行以外は(defun make-color (name r g b)…)みたいなに包んでコンストラクタに(あと怒られないようrgbをdefvarしたり初期値入れたり)
チェーン式記法だと補完が効くのが便利かと思ってる
(make-color :magenta ...)
(defun inc-chroma (col) ...)
(setf :vivid-cyan (inc-chroma :cyan))
みたいにパッケ渡して返って来た新パッケをbindしたり
make-package(のラッパ)にgensym渡して無名インスタンスをバコバコ作ったり
実は文法の変なdefstructが嫌いなだけだったり…
暗黙のアクセサ作ってくれて、それ故に人のコードも暗黙の了解で読めるのはありがたいけど
789デフォルトの名無しさん
2021/02/08(月) 15:20:42.83ID:FcZ190S6 パフォーマンスは気にしてない
でも多分*package*から見えるパッケはgcされないはずだから(見えてるからそうだよね?)
入力受けて吐いてすぐ終了のプログラム以外ではちゃんとdelete-packageする必要がありそう
でも多分*package*から見えるパッケはgcされないはずだから(見えてるからそうだよね?)
入力受けて吐いてすぐ終了のプログラム以外ではちゃんとdelete-packageする必要がありそう
790デフォルトの名無しさん
2021/02/08(月) 15:28:12.97ID:U6YnibKO >>787
楽しそうでなにより
楽しそうでなにより
791デフォルトの名無しさん
2021/02/08(月) 15:30:16.27ID:FcZ190S6 携帯で適当に書いたから、今見直しておかしいとこいっぱいあるけどその辺は見逃して下さい
:cyanは自己評価だからsetfできないとか、(symbol-package :cyan)とかで通ったっけ
:cyanは自己評価だからsetfできないとか、(symbol-package :cyan)とかで通ったっけ
792デフォルトの名無しさん
2021/02/08(月) 15:39:43.51ID:FcZ190S6 いやいやそもそも:cyanはkeywordに住んでるので、string designatorとして適切であっても、symbol-*に渡す時はシンボル'cyanですね
対話的に使ってる時は便利だけど、白紙から書くと間違いまくってるのがこの手法の怪しさを証明してるかも…
対話的に使ってる時は便利だけど、白紙から書くと間違いまくってるのがこの手法の怪しさを証明してるかも…
793デフォルトの名無しさん
2021/02/08(月) 17:09:30.27ID:A57k4pYD > なんか不都合あるのかな?
議論する価値ない手法だとおもうけどさ
他人とコードをシェアしないで一人でかくのはいいんでないか?
パッケージはhash-tableで実装されているから構造体よかhash-tableが便利いうてるのと大差ないわな
perlのパッケージ調査してみれば?
議論する価値ない手法だとおもうけどさ
他人とコードをシェアしないで一人でかくのはいいんでないか?
パッケージはhash-tableで実装されているから構造体よかhash-tableが便利いうてるのと大差ないわな
perlのパッケージ調査してみれば?
794デフォルトの名無しさん
2021/02/08(月) 18:22:21.06ID:EF6MW318 >>793
その辺はわきまえるよ
処理系の実装まで思い至らなかったので、記法だけを見てハッシュとしての特性を考えて無かった
標準のhashはネストしたときトリッキーなので、qlからaccessライブラリやマクロを駆使した中置アクセサが提供されてるけど、何もuseしないパッケージを使えば素直で性能も出そうだね
特にaccessはjsonとか読む用で、疎なテンソルの扱いとか考えてないし
早速ベンチしてみる、ありがとう!
その辺はわきまえるよ
処理系の実装まで思い至らなかったので、記法だけを見てハッシュとしての特性を考えて無かった
標準のhashはネストしたときトリッキーなので、qlからaccessライブラリやマクロを駆使した中置アクセサが提供されてるけど、何もuseしないパッケージを使えば素直で性能も出そうだね
特にaccessはjsonとか読む用で、疎なテンソルの扱いとか考えてないし
早速ベンチしてみる、ありがとう!
795デフォルトの名無しさん
2021/02/08(月) 19:28:02.06ID:aZaTrcsy うーん、、パッケージに属する変数との違いが分からない
796デフォルトの名無しさん
2021/02/08(月) 21:19:48.59ID:A57k4pYD シンボルのp-listのほうがなんぼかましだろな
(setf (symbol-plist 'cyan) '(r 0 g (sq 13) b (sq 15)))
(setf (get 'cyan 'r) 42)
(symbol-plist 'cyan)
(r 42 g (sq 13) b (sq 15))
(setf (symbol-plist 'cyan) '(r 0 g (sq 13) b (sq 15)))
(setf (get 'cyan 'r) 42)
(symbol-plist 'cyan)
(r 42 g (sq 13) b (sq 15))
797デフォルトの名無しさん
2021/02/08(月) 22:30:06.33ID:WYlwG+td 再帰的にパッケージ作ってはimport でホームに設定してるけど…やっぱり筋が悪かったですごめんなさい
一応軌跡だけ
デフォルト値はエラーをhandler-bindで捕まえる
cl-userの(list-all-package)が汚れるからcl-userから先頭以外はuninternして、でも参照は保持して…と
hs見たらdelete-packageやuninternしてもアクセスは許されるがpathologicalなのでチェックは行わないとか書いてる
怪しからん事になってきた
>>796
lisp5らしい方法ですね
propertyスロットに入れたのに、value slotにアクセスしようとしていつも怒られるからあんまりやらないけど…
情報付けたいけどvalueスロットが既に埋まってて、それがライブラリ由来で手を入れたくない時とかの非常口として稀に役に立つ
一応軌跡だけ
デフォルト値はエラーをhandler-bindで捕まえる
cl-userの(list-all-package)が汚れるからcl-userから先頭以外はuninternして、でも参照は保持して…と
hs見たらdelete-packageやuninternしてもアクセスは許されるがpathologicalなのでチェックは行わないとか書いてる
怪しからん事になってきた
>>796
lisp5らしい方法ですね
propertyスロットに入れたのに、value slotにアクセスしようとしていつも怒られるからあんまりやらないけど…
情報付けたいけどvalueスロットが既に埋まってて、それがライブラリ由来で手を入れたくない時とかの非常口として稀に役に立つ
798デフォルトの名無しさん
2021/02/08(月) 22:35:25.83ID:WYlwG+td sbclではcl-userからのfind/list-all-packageに引っかからなくても普通に生きてるみたい
799デフォルトの名無しさん
2021/02/12(金) 01:40:00.02ID:jvXjcedJ どれくらいplist(用のセル)が使われてるんだろうかと(do-external/all-symbols (s :clとか色々) (when s (print s)))してみたらinternalには意外に使われてた
まあ殆どデバッグ用のタグのようだが
まあ殆どデバッグ用のタグのようだが
800デフォルトの名無しさん
2021/02/14(日) 06:07:46.29ID:QgaFclDV The Lisperati1000 Is a Cyberdeck Terminal Dedicated to Lisp Programming
Dr. Conrad Barski wanted a small, portable device for coding Lisp on the go and
built the Lisperati1000 cyberdeck terminal for the job.
The Lisperati1000 is a very compact device based on the Raspberry Pi Zero W single-board computer.
Its most striking feature is the 8.8” LCD display,
which has an ultra-wide aspect ratio with a resolution of 1920x480.
Dr. Conrad Barski wanted a small, portable device for coding Lisp on the go and
built the Lisperati1000 cyberdeck terminal for the job.
The Lisperati1000 is a very compact device based on the Raspberry Pi Zero W single-board computer.
Its most striking feature is the 8.8” LCD display,
which has an ultra-wide aspect ratio with a resolution of 1920x480.
801デフォルトの名無しさん
2021/02/16(火) 17:55:44.18ID:05vP8Ot3 たのしそう
なんですげー細長いのかすらもよく分からんが
androidだとeclのreplがあるけど残念UIで殆ど触ってない
外付けBluetoothキーボード安いの買ってみるかな
なんですげー細長いのかすらもよく分からんが
androidだとeclのreplがあるけど残念UIで殆ど触ってない
外付けBluetoothキーボード安いの買ってみるかな
802デフォルトの名無しさん
2021/02/16(火) 18:22:07.49ID:6gVrqubW DynabookならぬTecobookみたいなw
803デフォルトの名無しさん
2021/02/16(火) 22:06:52.79ID:05vP8Ot3 ポン叩くとnilが生じ、クルッと( )で囲んだり、ピンチで←(こ う)→引き伸ばしたり、そこへ(flick me)をフリックで放り込んだり(こ (flick me)う)したいです
例えはプログフォームなことを忘れてたら
ここを(kar | kadar...)こうシュッと分裂(kar ) ( kadar...)させてシュッと((kar ) ( kadar...))こうする感じで
よろしくおねがいします
例えはプログフォームなことを忘れてたら
ここを(kar | kadar...)こうシュッと分裂(kar ) ( kadar...)させてシュッと((kar ) ( kadar...))こうする感じで
よろしくおねがいします
804デフォルトの名無しさん
2021/02/16(火) 22:16:37.94ID:05vP8Ot3 paredit/vim使ってるけど脳内操作感はこんなんだな
vimでジェスチャーは難しそう?
:nnomap <left-mouse> ,@(スプライス/paredit)みたいのはタブレで桐南るんだろ?
マウスなら左右中×シングルダブクリの6パターン使えるが
vimでジェスチャーは難しそう?
:nnomap <left-mouse> ,@(スプライス/paredit)みたいのはタブレで桐南るんだろ?
マウスなら左右中×シングルダブクリの6パターン使えるが
805デフォルトの名無しさん
2021/02/16(火) 23:05:06.72ID:82m2i+/K play storeに転がってるvimの投げやりなポート触る限り、矩形選択が使えそう?
範囲だけで動きが追えないが
キーボードフリーvimなんて、と思ったけどふと試した音声入力が結構戦える事に気づいた(約物とauto-capさえ切れば)
修飾キーあんまり使わないからだね
:、escよく使う大文字修飾コマンド、モード切替あたりはリマップする必要があるが
(par、)renでいこう
範囲だけで動きが追えないが
キーボードフリーvimなんて、と思ったけどふと試した音声入力が結構戦える事に気づいた(約物とauto-capさえ切れば)
修飾キーあんまり使わないからだね
:、escよく使う大文字修飾コマンド、モード切替あたりはリマップする必要があるが
(par、)renでいこう
806デフォルトの名無しさん
2021/02/17(水) 01:10:17.45ID:H30hYpZs hyperspecの発音記号の項目が輝く時がやっと来たのか
807デフォルトの名無しさん
2021/03/04(木) 00:09:41.26ID:p41hv1JI hsもcltl2も大体読んで細かいとこ気になってきたらansi/isoも読むべき?
60$とえらく高いし製版の評判ボロクソだけど
ANSIに持ち込んで版権付く直前のドラフトがansi-cl.psでググって出てくるけどどのくらい違うんだろ、並べて読まないとhsとは違いが分からんが…
処理系作成者以外が参照する準公式文書でフリーなのは以上3つで尽きてるよね?
もし買った熱心な方いたらお願いします
60$とえらく高いし製版の評判ボロクソだけど
ANSIに持ち込んで版権付く直前のドラフトがansi-cl.psでググって出てくるけどどのくらい違うんだろ、並べて読まないとhsとは違いが分からんが…
処理系作成者以外が参照する準公式文書でフリーなのは以上3つで尽きてるよね?
もし買った熱心な方いたらお願いします
808デフォルトの名無しさん
2021/03/04(木) 00:29:46.91ID:p41hv1JI 紙のスキャンでocrすらしてない名ばかりpdf、スキャンが斜めってて端の方の文書が欠けてると聞くと、むしろ怖いもの見たさが湧く
c/c++のように違法アップロードが見当たらないのはclの民度が高いのか、もっと高額だからか、それとも単に需要がないからなのか…
c/c++のように違法アップロードが見当たらないのはclの民度が高いのか、もっと高額だからか、それとも単に需要がないからなのか…
809デフォルトの名無しさん
2021/03/04(木) 02:23:20.12ID:tD3BuSri 情報元にドラフトと内容の違いはないというのも書いてあったよな
810デフォルトの名無しさん
2021/03/04(木) 12:33:01.96ID:CuM732tt811デフォルトの名無しさん
2021/03/04(木) 13:48:00.83ID:CIINzG5o 無理矢理なPDF版よりも、むしろ紙の仕様書が欲しい
AmazonのPODで売ってくれたら絶対買う
AmazonのPODで売ってくれたら絶対買う
812デフォルトの名無しさん
2021/03/04(木) 15:02:38.87ID:CuM732tt 紙の持ってるとほんといいね
寝ながらcltl2の余白に書き込みまくってる、枕にも丁度よい
amazon中古送料込み450円なんでためらいもない
寝ながらcltl2の余白に書き込みまくってる、枕にも丁度よい
amazon中古送料込み450円なんでためらいもない
813デフォルトの名無しさん
2021/03/07(日) 21:32:46.67ID:xqIC71Yx 誰か教えてください
CLOSで デストラクタ的な事をするにはどうしたらいいんでしょうか?
(defmethod delete ((o myclass))
~disconnect DB connection とか colse socket とか~ )
(let ((obj (make-instance 'myclass))) ... )
参照が残っていなければ勝手に (delete obj) がコールされるのが理想です
少しググっても「放っておけばガーベッジコレクトされるのに何を心配する必要があるんだ?(英語) 」
みたいなのばかり引っかかってどうにも分かりませんでした
CLOSで デストラクタ的な事をするにはどうしたらいいんでしょうか?
(defmethod delete ((o myclass))
~disconnect DB connection とか colse socket とか~ )
(let ((obj (make-instance 'myclass))) ... )
参照が残っていなければ勝手に (delete obj) がコールされるのが理想です
少しググっても「放っておけばガーベッジコレクトされるのに何を心配する必要があるんだ?(英語) 」
みたいなのばかり引っかかってどうにも分かりませんでした
814デフォルトの名無しさん
2021/03/07(日) 21:44:41.79ID:OPAOeHk0 参照がないことを検知できないので
disconnectやらcloseやらは明示で呼ぶしかない
disconnectやらcloseやらは明示で呼ぶしかない
815デフォルトの名無しさん
2021/03/07(日) 21:54:16.38ID:xqIC71Yx ありがとうございます
それが Lispスタイルなのですね、少しづつ慣れていこうと思います
それが Lispスタイルなのですね、少しづつ慣れていこうと思います
816デフォルトの名無しさん
2021/03/07(日) 22:12:51.14ID:R8ni/s97 単に接続を確実に閉じたいだけなら、with-open-file みたいなマクロ書くけど
CLOSかぁ
CLOSかぁ
817デフォルトの名無しさん
2021/03/08(月) 21:55:25.40ID:WFQsFdpL c++にとらわれすぎc++の用語で検索するからヒットがないだけでlisp raiiで検索すると沢山でてくるよ
リソース管理だから816の回答が定石
リソース管理だから816の回答が定石
818デフォルトの名無しさん
2021/03/10(水) 01:22:08.43ID:Y251bYtV with-なんたらがC#のusing相当よね
819デフォルトの名無しさん
2021/03/11(木) 00:45:34.23ID:SHe0MBwi Python の with はCL由来かな
820デフォルトの名無しさん
2021/03/11(木) 09:02:08.80ID:ifNxw6Pa Pythonはpaulがベタ褒めしてから20年くらい追ってるけど、元はblock(不採用)として提案され、先例上げるのが通例なのに言及もなかったはずなので直接は関係ないんじゃないかな?
pepでよく言及されるのは確かだが
今だと構文マクロは却下されそうだな、面白そうなのに
ふつうの言語はASTを内部表現に採用してると思うが、Pythonは標準関数で抽出&evalを許してるのが特異で面白い
lispインタプリタ書きなどしなくとも、ノードのラベルをリストのcarと入れ替えるだけの数行のコードでフルパワーlispになる
pepでよく言及されるのは確かだが
今だと構文マクロは却下されそうだな、面白そうなのに
ふつうの言語はASTを内部表現に採用してると思うが、Pythonは標準関数で抽出&evalを許してるのが特異で面白い
lispインタプリタ書きなどしなくとも、ノードのラベルをリストのcarと入れ替えるだけの数行のコードでフルパワーlispになる
821デフォルトの名無しさん
2021/03/11(木) 21:29:17.70ID:WMKPM4Ms >>820 ちょっと何言ってるか分かんない
822デフォルトの名無しさん
2021/03/12(金) 00:20:34.70ID:jnwQeQfS823デフォルトの名無しさん
2021/03/13(土) 03:54:58.89ID:znyU1x9d CCLでdexadorが使えなくて困ってるのだけどもしかしてビルド失敗してるのかな
SBCLなら通るのだけどCCLだとこんなエラーになる
ttps://i.imgur.com/uCzQQTm.png
lispの問題解決はそもそもよくわかってないのでどうしたらいいものやら
SBCLなら通るのだけどCCLだとこんなエラーになる
ttps://i.imgur.com/uCzQQTm.png
lispの問題解決はそもそもよくわかってないのでどうしたらいいものやら
824デフォルトの名無しさん
2021/03/13(土) 06:33:03.19ID:XgCz+Tty SBCLつかう
825デフォルトの名無しさん
2021/03/14(日) 15:46:41.12ID:o2ffqw6Y >>823
connection refused って出てるあたりよく分からないなあ。
俺が手元のMacで試すと成功したのでより分からない。
いっそのこと HTTP クライアント変えて Drakma 使うとか。
(ql:quickload "drakma")
(drakma:http-request "https://ja.wikipedia.org/wiki/Common_Lisp")
connection refused って出てるあたりよく分からないなあ。
俺が手元のMacで試すと成功したのでより分からない。
いっそのこと HTTP クライアント変えて Drakma 使うとか。
(ql:quickload "drakma")
(drakma:http-request "https://ja.wikipedia.org/wiki/Common_Lisp")
826デフォルトの名無しさん
2021/03/14(日) 16:55:20.29ID:CVMafXuR >>797
propertyはおもむろにsetfしても怒られないので対話使用に便利
というのはさておき怒られない理由が気になる
letでそのシンボルを束縛しててもグローバルのシンボルのplist見に行くよね?
単に気にもかけられない機能だからとか?
propertyはおもむろにsetfしても怒られないので対話使用に便利
というのはさておき怒られない理由が気になる
letでそのシンボルを束縛しててもグローバルのシンボルのplist見に行くよね?
単に気にもかけられない機能だからとか?
827デフォルトの名無しさん
2021/03/14(日) 17:02:06.59ID:o+fPUrgF ああletで束縛するのはplistという名前のvalueであって、getf 'plist 'propって書けば当然シンボルとしてのplistを見に行くわな
自己解決
自己解決
828デフォルトの名無しさん
2021/03/14(日) 17:04:59.01ID:o+fPUrgF するとpletって概念が頭に浮かぶんだけど、どう実装できるだろう?
ちょっと思いつかない
ちょっと思いつかない
829デフォルトの名無しさん
2021/03/15(月) 00:09:02.39ID:2V51Rd3t830デフォルトの名無しさん
2021/03/15(月) 22:54:46.18ID:nwI8edue ccl使ってないからわからないけど、ipv6とか出てるのが気になる
831デフォルトの名無しさん
2021/03/16(火) 00:47:01.98ID:z8vZoY4R 最近Lispというものを知ったのですが、皆さんはなぜこの言語を使っているのですか?
832デフォルトの名無しさん
2021/03/16(火) 01:48:52.01ID:SXyIy3pf マスコットが可愛いから
833デフォルトの名無しさん
2021/03/16(火) 15:35:46.37ID:3xabyoxQ どこまでも動的だから
834デフォルトの名無しさん
2021/03/16(火) 16:36:23.79ID:SXyIy3pf 遊び甲斐がある、たぶんFORTHと並んで最も面白い言語から
しかし仕事はない
間接的に地力固めにはなってる気はする
しかし仕事はない
間接的に地力固めにはなってる気はする
835デフォルトの名無しさん
2021/03/16(火) 16:39:38.49ID:SXyIy3pf 求人ねえかなあ…
836デフォルトの名無しさん
2021/03/16(火) 16:47:09.56ID:SXyIy3pf lisperを集めてもみんな船頭になりたがる人種だから川渡れないよなあ
伝説的なプロジェクトは大体少人数ってのが裏付けている、気がする
伝説的なプロジェクトは大体少人数ってのが裏付けている、気がする
837デフォルトの名無しさん
2021/03/16(火) 17:51:29.58ID:le9BGxml CCLの再ビルドをしていて気づきましたがcan’t findが大量に出てますねえ・・
ccl -n
>(rebuild-ccl :clean t)
Can't find #P"ccl:library;lispequ.dx64fsl.newest" so requiring "ccl:library;lispequ.lisp" instead
Can't find #P"ccl:bin;hash.dx64fsl.newest" so requiring "ccl:lib;hash.lisp" instead
Can't find #P"ccl:bin;backquote.dx64fsl.newest" so requiring "ccl:lib;backquote.lisp" instead
Can't find #P"ccl:bin;level-2.dx64fsl.newest" so requiring "ccl:lib;level-2.lisp" instead
.....
この後にも大量に出てますが対象のlispファイルは存在しているようなので
見にいくようにすればいいのではないかと思いますがやり方がわかりません
どなたか教えていただければ助かります
CCL本体のmake自体は特に何も出ていませんでした。
ccl -n
>(rebuild-ccl :clean t)
Can't find #P"ccl:library;lispequ.dx64fsl.newest" so requiring "ccl:library;lispequ.lisp" instead
Can't find #P"ccl:bin;hash.dx64fsl.newest" so requiring "ccl:lib;hash.lisp" instead
Can't find #P"ccl:bin;backquote.dx64fsl.newest" so requiring "ccl:lib;backquote.lisp" instead
Can't find #P"ccl:bin;level-2.dx64fsl.newest" so requiring "ccl:lib;level-2.lisp" instead
.....
この後にも大量に出てますが対象のlispファイルは存在しているようなので
見にいくようにすればいいのではないかと思いますがやり方がわかりません
どなたか教えていただければ助かります
CCL本体のmake自体は特に何も出ていませんでした。
838デフォルトの名無しさん
2021/03/16(火) 20:24:15.22ID:SXyIy3pf うちはsbclなんであれだがSBCL_HOMEみないな名前の環境変数は.../lib/sbclをちゃんと指してるか?
839デフォルトの名無しさん
2021/03/16(火) 20:51:54.59ID:le9BGxml ttps://github.com/Clozure/ccl/releases
ここを見る限りは必要ないみたいです
ほとんどは参照に成功しているようでLoadingとCommpilingが繰り返されてますね
さっきから調べてますがちょっとこれ手に負えないですわ・・
ここを見る限りは必要ないみたいです
ほとんどは参照に成功しているようでLoadingとCommpilingが繰り返されてますね
さっきから調べてますがちょっとこれ手に負えないですわ・・
840デフォルトの名無しさん
2021/03/16(火) 21:47:53.48ID:Rsbfm/u/ そもそもどういう環境なのか書いて欲しい
エスパーするにも限度があるぞ
エスパーするにも限度があるぞ
841デフォルトの名無しさん
2021/03/16(火) 21:56:26.16ID:le9BGxml すみません
high sierra 10.13.6 です
経験なさすぎて手に負えません
先輩方お願いします
high sierra 10.13.6 です
経験なさすぎて手に負えません
先輩方お願いします
842デフォルトの名無しさん
2021/03/16(火) 22:14:38.72ID:5EsGrMIo 趣味悪いやつがどこまでエスパーできるか試してるようにしかみえん・・
843デフォルトの名無しさん
2021/03/16(火) 22:19:17.23ID:oighJobp どうやってインストールしたん
CCLのバージョンは
なんでCCLの再ビルドしたん
CCLのバージョンは
なんでCCLの再ビルドしたん
844デフォルトの名無しさん
2021/03/16(火) 22:31:08.36ID:le9BGxml ttps://github.com/Clozure/ccl/releases
ここにある通りです
CCL 1.12がlatestのはずです
git clone https://github.com/Clozure/ccl.git ccl-dev
curl -L -O https://github.com/Clozure/ccl/releases/download/v1.12/darwinx86.tar.gz
cd ccl-dev
tar xf ../darwinx86.tar.gz
なおここから先のCCL本体のビルドはやってもやらなくても結果は同じでした
cd lisp-kernel/darwinx8664
make clean
make
ln -s */ccl-dev/dx86c164 ccl
は適宜やってます
単にCCLはビルド以外の提供がなかったからビルドしただけで他意はないんです
ここにある通りです
CCL 1.12がlatestのはずです
git clone https://github.com/Clozure/ccl.git ccl-dev
curl -L -O https://github.com/Clozure/ccl/releases/download/v1.12/darwinx86.tar.gz
cd ccl-dev
tar xf ../darwinx86.tar.gz
なおここから先のCCL本体のビルドはやってもやらなくても結果は同じでした
cd lisp-kernel/darwinx8664
make clean
make
ln -s */ccl-dev/dx86c164 ccl
は適宜やってます
単にCCLはビルド以外の提供がなかったからビルドしただけで他意はないんです
845デフォルトの名無しさん
2021/03/16(火) 22:34:20.43ID:Rsbfm/u/ lisper だけにエスパーは得意でございます
お後がよろしいようで…
つか、なんかcclのページに何か不安なこと書いてるね
Unfortunately, on Windows and macOS Catalina, (rebuild-ccl :full t) will not work.
お後がよろしいようで…
つか、なんかcclのページに何か不安なこと書いてるね
Unfortunately, on Windows and macOS Catalina, (rebuild-ccl :full t) will not work.
846デフォルトの名無しさん
2021/03/17(水) 02:23:28.92ID:IQD2IzZ+ >>844
たまたまうちの環境も High Sierra だけど CCL は roswel で導入したのを使ってる (他に sbcl と abcl-bin を入れてる)
確かに ccl-bin でしか提供されてないけど気にならないので再ビルドする気にはならんね
> Can't find #P"ccl:library;lispequ.dx64fsl.newest" so requiring "ccl:library;lispequ.lisp" instead
> ...
この箇所ってエラーではないと思うよ
コンパイル済みの "ccl:library;lispequ.dx64fsl.newest" が見つからんので
代わりに "ccl:library;lispequ.lisp" を探すわ (そしてコンパイルするわ)
ってだけのメッセージでしょ
(translate-logical-pathname "ccl:library;lispequ.lisp") の場所にファイルがあれば何も問題ないはず
たまたまうちの環境も High Sierra だけど CCL は roswel で導入したのを使ってる (他に sbcl と abcl-bin を入れてる)
確かに ccl-bin でしか提供されてないけど気にならないので再ビルドする気にはならんね
> Can't find #P"ccl:library;lispequ.dx64fsl.newest" so requiring "ccl:library;lispequ.lisp" instead
> ...
この箇所ってエラーではないと思うよ
コンパイル済みの "ccl:library;lispequ.dx64fsl.newest" が見つからんので
代わりに "ccl:library;lispequ.lisp" を探すわ (そしてコンパイルするわ)
ってだけのメッセージでしょ
(translate-logical-pathname "ccl:library;lispequ.lisp") の場所にファイルがあれば何も問題ないはず
847デフォルトの名無しさん
2021/03/17(水) 05:48:07.88ID:kb+CEO2s >>846
なるほど実は(rebuild-ccl :clean t)は必要なかったんですかね
気を取り直してCCL本体はmakeせずrebuildも打たない形にしてみたんですが
やっぱりdexadorは同じところで止まるようです
しかしCCLで動いている方もいるようなので(>>825)
こうなるとますますわかりません
何か設定がおかしいのか、足りないのか・・
とりあえず現状で:F 1から:F10まで追ってみたんですが
SSLっぽい引数が全部NILってことに気づいてSSLをしくっている可能性を考えました
internet-familyはIPv6/IPv4に対応しているような感じは受けますがそこはまずおいておいて
IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
なるほど実は(rebuild-ccl :clean t)は必要なかったんですかね
気を取り直してCCL本体はmakeせずrebuildも打たない形にしてみたんですが
やっぱりdexadorは同じところで止まるようです
しかしCCLで動いている方もいるようなので(>>825)
こうなるとますますわかりません
何か設定がおかしいのか、足りないのか・・
とりあえず現状で:F 1から:F10まで追ってみたんですが
SSLっぽい引数が全部NILってことに気づいてSSLをしくっている可能性を考えました
internet-familyはIPv6/IPv4に対応しているような感じは受けますがそこはまずおいておいて
IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
848デフォルトの名無しさん
2021/03/17(水) 05:57:38.64ID:kb+CEO2s (続き)
こうなるとdexadorがCCLに対応していない可能性があると思い
ttps://github.com/fukamachi/dexador
ここを見ると特に対応情報とかはないようですがサンプルから
? (dex:get "http://lisp.org/")
"<HTML>
<HEAD>
<title>John McCarthy, 1927-2011</title>
・・・中略・・・・
<a href=¥"http://www-formal.stanford.edu/jmc/¥;">John McCarthy's Home Page</a><br>
<a href=¥"http://news.stanford.edu/news/2011/october/john-mccarthy-obit-102511.html¥;">Obituary</a>
</BODY>
</HTML>
"
200
#<HASH-TABLE :TEST EQUAL size 10/60 #x302002997A5D>
#<QURI.URI.HTTP:URI-HTTPS https://lisp.org/>
#<SSL-STREAM for #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/11) #x30200299FA3D>>
?
んー?落ちてきますねえ・・
https://lisp.org/に変えても落ちてきます。
dexadorに頼っていいのかどうかわからなくなってきました
こうなるとdexadorがCCLに対応していない可能性があると思い
ttps://github.com/fukamachi/dexador
ここを見ると特に対応情報とかはないようですがサンプルから
? (dex:get "http://lisp.org/")
"<HTML>
<HEAD>
<title>John McCarthy, 1927-2011</title>
・・・中略・・・・
<a href=¥"http://www-formal.stanford.edu/jmc/¥;">John McCarthy's Home Page</a><br>
<a href=¥"http://news.stanford.edu/news/2011/october/john-mccarthy-obit-102511.html¥;">Obituary</a>
</BODY>
</HTML>
"
200
#<HASH-TABLE :TEST EQUAL size 10/60 #x302002997A5D>
#<QURI.URI.HTTP:URI-HTTPS https://lisp.org/>
#<SSL-STREAM for #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/11) #x30200299FA3D>>
?
んー?落ちてきますねえ・・
https://lisp.org/に変えても落ちてきます。
dexadorに頼っていいのかどうかわからなくなってきました
849デフォルトの名無しさん
2021/03/17(水) 06:03:28.42ID:kb+CEO2s >>847のリンクを間違えました
誤 IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
正 IPv4を返しているwww.nicovideo.jpをgetさせたらkilled: 9でCCL自体落ちました
誤 IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
正 IPv4を返しているwww.nicovideo.jpをgetさせたらkilled: 9でCCL自体落ちました
850デフォルトの名無しさん
2021/03/17(水) 10:33:15.58ID:IQD2IzZ+851デフォルトの名無しさん
2021/03/17(水) 11:20:35.79ID:e+VOZDZq 環境構築めんどくせえからxyzzyかPortacleでいいや
852デフォルトの名無しさん
2021/03/17(水) 11:57:13.48ID:eAjGywmP lisp.orgなる良いドメイン確保してるの初めて知った…
stanfordのjmcのhpへのリンクがあるだけ?
(いまお外でスマホブラウザftpできない)
stanfordのjmcのhpへのリンクがあるだけ?
(いまお外でスマホブラウザftpできない)
853デフォルトの名無しさん
2021/03/17(水) 12:14:26.44ID:nm2OeIl9 ubuntsu で普通にaptでsbcl落とせたはず、ccl は知らんけど
850のコメントが正しいと思う、usocket が壊れてるとかかな
850のコメントが正しいと思う、usocket が壊れてるとかかな
854デフォルトの名無しさん
2021/03/17(水) 12:30:51.87ID:kb+CEO2s やってみました
? (ql:update-client)
The most up-to-date client, version 2021-02-13, is already installed.
T
? (ql:update-all-dists)
1 dist to check.
You already have the latest version of "quicklisp": 2021-02-28.
NIL
特に何も変わらないようです・・
ccl自体はquicklispの管理には入っていないと思うのですがこれを組み込むべきと言うことでしょうか?
? (ql:update-client)
The most up-to-date client, version 2021-02-13, is already installed.
T
? (ql:update-all-dists)
1 dist to check.
You already have the latest version of "quicklisp": 2021-02-28.
NIL
特に何も変わらないようです・・
ccl自体はquicklispの管理には入っていないと思うのですがこれを組み込むべきと言うことでしょうか?
855デフォルトの名無しさん
2021/03/17(水) 16:11:31.69ID:IQD2IzZ+ >>854
あと考えられるのは
quicklisp/.. . .. /cl+ssl-20210228-git/src/reload.lisp で
libcrypto.dylib, libssl.dylib をロードしようとしていて
システム標準ライブラリに付いてるコメントが怪しい ( MacPorts/Homebrew etc. の dylib を優先的に探索している)
"libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"libssl.dylib" ;; default system libssl, which may have insufficient crypto
「これだと暗号化が不十分かも」という事は、 https 通信で問題起こす可能性があるということ
そこで拒否られる ( connection refused ) かどうかはサーバーのバージョンと設定次第なんじゃないかと
なので 自力 make install か homebrew とかで を最新の openssl をインストールしたら直るかもよ
それと dexador/drakma はサーバーがLocation属性で示したリダイレクト先(大抵は https://... ) 見に行くようなので
httpなら大丈夫だった, httpでも拒否られた ってのはアテにならない気がする
あと考えられるのは
quicklisp/.. . .. /cl+ssl-20210228-git/src/reload.lisp で
libcrypto.dylib, libssl.dylib をロードしようとしていて
システム標準ライブラリに付いてるコメントが怪しい ( MacPorts/Homebrew etc. の dylib を優先的に探索している)
"libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"libssl.dylib" ;; default system libssl, which may have insufficient crypto
「これだと暗号化が不十分かも」という事は、 https 通信で問題起こす可能性があるということ
そこで拒否られる ( connection refused ) かどうかはサーバーのバージョンと設定次第なんじゃないかと
なので 自力 make install か homebrew とかで を最新の openssl をインストールしたら直るかもよ
それと dexador/drakma はサーバーがLocation属性で示したリダイレクト先(大抵は https://... ) 見に行くようなので
httpなら大丈夫だった, httpでも拒否られた ってのはアテにならない気がする
856デフォルトの名無しさん
2021/03/17(水) 16:20:38.24ID:MY4kqLB8 ああ、qlはssl対応してないんだっけな(遠い目)
永久にβ版
永久にβ版
857デフォルトの名無しさん
2021/03/17(水) 20:29:18.59ID:IQD2IzZ+ >>854 あと rebuild-ccl についてなんだが
https://github.com/Clozure/ccl/releases を見ると
Windowsや macOS Catalina だと (rebuild-ccl :full t) はうまくいかないかも
Xcode 11 (Mojave) の一部バージョンだと make も通らんかもとあるが
我々の環境 Xcode 10.1 (High Sierra) では大丈夫なはず
;; git 版 rebuild-ccl ;;
ccl-dev❦:./dx86cl64 --no-init
? (rebuild-ccl :full t)
. . ... . .
;Building lisp-kernel ...
;Kernel built successfully.
できた
;; roswell 版 rebuild-ccl ;;
~❦:ros install ccl-bin {まだ入れてなければ}
~❦:ros +Q +R run { +Q: quicklisp無し, +R: "--no-init" に相当 }
? (rebuild-ccl :full t)
. . ... . . できた
~❦:ros run {普通に起動}
? (ql:quickload :dexador)
? (dex:get "https://lisp.org")
. . ... . .
とりあえず問題無さそう
素のCCLとの性能差は体感では分からなかった
https://github.com/Clozure/ccl/releases を見ると
Windowsや macOS Catalina だと (rebuild-ccl :full t) はうまくいかないかも
Xcode 11 (Mojave) の一部バージョンだと make も通らんかもとあるが
我々の環境 Xcode 10.1 (High Sierra) では大丈夫なはず
;; git 版 rebuild-ccl ;;
ccl-dev❦:./dx86cl64 --no-init
? (rebuild-ccl :full t)
. . ... . .
;Building lisp-kernel ...
;Kernel built successfully.
できた
;; roswell 版 rebuild-ccl ;;
~❦:ros install ccl-bin {まだ入れてなければ}
~❦:ros +Q +R run { +Q: quicklisp無し, +R: "--no-init" に相当 }
? (rebuild-ccl :full t)
. . ... . . できた
~❦:ros run {普通に起動}
? (ql:quickload :dexador)
? (dex:get "https://lisp.org")
. . ... . .
とりあえず問題無さそう
素のCCLとの性能差は体感では分からなかった
858デフォルトの名無しさん
2021/03/17(水) 21:56:44.29ID:kb+CEO2s >>855
libcryptoとlibsslは自分でビルドしたのを/usr/local/libに置いてます
そんなに古いわけじゃないとは思うんですが早速更新して見ます
SSL関係はCLの標準ライブラリとして持ってるものだと思ってました・・
libcryptoとlibsslは自分でビルドしたのを/usr/local/libに置いてます
そんなに古いわけじゃないとは思うんですが早速更新して見ます
SSL関係はCLの標準ライブラリとして持ってるものだと思ってました・・
859デフォルトの名無しさん
2021/03/18(木) 00:04:37.76ID:txHaGLQk うーんだめでした
CCL本体のmakeをせずrebuildもしないものと
CCL本体をmakeしrebuildも実行したものどっちも同じ結果です
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (ql:update-all-dists)
1 dist to check.
You already have the latest version of "quicklisp": 2021-02-28.
NIL
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x3020023388AD>
> While executing: USOCKET::RAISE-ERROR-FROM-ID, in process listener(1).
OpenSSLの最新はmake testをパスしてます
/usr/local/libは優先パスになってるので通常そこはいいはずなんですが
quicklisp側に設定がいるんでしょうか
前から気になるのはquicklispのsetupを実行するといつまでたっても終わらないことですね
仕方ないので
rm -rf ~/quicklispで消してから
ccl ―load quicklisp.lisp
(quicklisp-quickstart:install)
(ql:quickload :dexador)
(dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
とかやってます
CCL本体のmakeをせずrebuildもしないものと
CCL本体をmakeしrebuildも実行したものどっちも同じ結果です
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (ql:update-all-dists)
1 dist to check.
You already have the latest version of "quicklisp": 2021-02-28.
NIL
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x3020023388AD>
> While executing: USOCKET::RAISE-ERROR-FROM-ID, in process listener(1).
OpenSSLの最新はmake testをパスしてます
/usr/local/libは優先パスになってるので通常そこはいいはずなんですが
quicklisp側に設定がいるんでしょうか
前から気になるのはquicklispのsetupを実行するといつまでたっても終わらないことですね
仕方ないので
rm -rf ~/quicklispで消してから
ccl ―load quicklisp.lisp
(quicklisp-quickstart:install)
(ql:quickload :dexador)
(dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
とかやってます
860デフォルトの名無しさん
2021/03/18(木) 00:17:32.21ID:3weRgygV そんなにこだわることかね?安定版、あわよくばプリコンパイル済の入れて差分は手動パッチの方が楽じゃないの
俺なんか素のリスプイメージから10代くらいsave-lisp-and-dieし続けた秘伝のイメージだから、もはやどうやって再現していいのかわからん
俺なんか素のリスプイメージから10代くらいsave-lisp-and-dieし続けた秘伝のイメージだから、もはやどうやって再現していいのかわからん
861デフォルトの名無しさん
2021/03/18(木) 00:26:02.89ID:txHaGLQk 特にmakeせずgitでプリコンパイルされているものを使ってもだめなのでよくわからないんですよね
common lispの環境もよくわかっていないので問題解決もままならないです
OpenSSLは正しく/usr/local/libに入っているのを確認しているのでそこは大丈夫なはずですが
何かしらの理由で読んでいないとかだとまずいですねえ・・
common lispの環境もよくわかっていないので問題解決もままならないです
OpenSSLは正しく/usr/local/libに入っているのを確認しているのでそこは大丈夫なはずですが
何かしらの理由で読んでいないとかだとまずいですねえ・・
862デフォルトの名無しさん
2021/03/18(木) 00:27:52.12ID:MFTfSoUk863デフォルトの名無しさん
2021/03/18(木) 00:31:03.23ID:3weRgygV 愛着が湧いてくるのです
864デフォルトの名無しさん
2021/03/18(木) 02:31:51.99ID:TYZwFG+5 >>861
あと思いつくのは
・コンパル済みキャッシュ
念のため真っさらに
rm -rf ~/.cache/common-lisp/ccl-1.12-f98-macosx-x64
・Fink, MacPorts, Homebrew 経由の古い libcrypt.dylib, libssl.dylib
こいつらは /usr/local/lib/* より参照優先度が高い ( sbcl だと大丈夫な理由が分からんけど )
インストールした覚えがなくてもチェックしときましょうか
とか?
あと思いつくのは
・コンパル済みキャッシュ
念のため真っさらに
rm -rf ~/.cache/common-lisp/ccl-1.12-f98-macosx-x64
・Fink, MacPorts, Homebrew 経由の古い libcrypt.dylib, libssl.dylib
こいつらは /usr/local/lib/* より参照優先度が高い ( sbcl だと大丈夫な理由が分からんけど )
インストールした覚えがなくてもチェックしときましょうか
とか?
865デフォルトの名無しさん
2021/03/18(木) 07:21:38.54ID:0KnUd1t3 ld.conf.d とか変に弄ったのを忘れてるに一票
866デフォルトの名無しさん
2021/03/18(木) 14:14:43.37ID:txHaGLQk >>864
fink /sw ~/sw はありませんでした
MacPorts /opt 以下はX11だけでした
Homebrew /opt/homebrew はありませんでした
コンパイル済みキャッシュ・・はどこにあるのか結局わからなかったので
CLLのフォルダごと削除して新しくgit cloneしました
~/.cache/common-lisp/ccl-1.12-f98-macosx-x64 はありました
他にsbclとかも入っていたので全て消しました
あとは同じように
m -rf ~/quicklisp
ccl ―load quicklisp.lisp
? (quicklisp-quickstart:install)
? (ql:quickload :dexador)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200246AE5D>
ダメでした・・
URLによってエラーになったりならなかったりよくわからないですね
>>865
特に触っていないと思います
この間始めたばかりの素人なのでインストールガイドに書いてあることくらいしかできてないのです
そういうわけなので設定とかもしかしたら必要なのかもしれませんが全くやっていません
fink /sw ~/sw はありませんでした
MacPorts /opt 以下はX11だけでした
Homebrew /opt/homebrew はありませんでした
コンパイル済みキャッシュ・・はどこにあるのか結局わからなかったので
CLLのフォルダごと削除して新しくgit cloneしました
~/.cache/common-lisp/ccl-1.12-f98-macosx-x64 はありました
他にsbclとかも入っていたので全て消しました
あとは同じように
m -rf ~/quicklisp
ccl ―load quicklisp.lisp
? (quicklisp-quickstart:install)
? (ql:quickload :dexador)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200246AE5D>
ダメでした・・
URLによってエラーになったりならなかったりよくわからないですね
>>865
特に触っていないと思います
この間始めたばかりの素人なのでインストールガイドに書いてあることくらいしかできてないのです
そういうわけなので設定とかもしかしたら必要なのかもしれませんが全くやっていません
867デフォルトの名無しさん
2021/03/18(木) 15:56:19.49ID:TYZwFG+5 システム標準の "libcrypto.dylib" "libssl.dylib" が connection refused の原因なのか?という件
quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp を編集して
どのdylibも存在しないパスに書き換えると (ql:quickload :dexador) に失敗するので「リストにあるどれか」を必要としている事は確か
そして システム標準以外を見に行かないようにすると...
少なくとも https://lisp.org, https://nicovideo.jp に関しては問題なく ( dex:get ... ) ができました
>>866
/usr/local/lib/ にインストールしたOpenSSL は大丈夫なはず!
かどうかは分からないので同じように試してみるといいかもしれない
quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp を編集して
どのdylibも存在しないパスに書き換えると (ql:quickload :dexador) に失敗するので「リストにあるどれか」を必要としている事は確か
そして システム標準以外を見に行かないようにすると...
少なくとも https://lisp.org, https://nicovideo.jp に関しては問題なく ( dex:get ... ) ができました
>>866
/usr/local/lib/ にインストールしたOpenSSL は大丈夫なはず!
かどうかは分からないので同じように試してみるといいかもしれない
868デフォルトの名無しさん
2021/03/18(木) 16:03:33.65ID:eM8QRv2l 動いてないの質問者1人で動いてるやつ3人くらいいる状況だと質問者の環境がおかしいとしか・・
869デフォルトの名無しさん
2021/03/18(木) 18:48:43.68ID:txHaGLQk >>867
このように変えてみました
(:darwin (:or "/usr/local/lib/libcrypto.dylib" ;; personalized install
))
(:darwin (:or "/usr/local/lib/libssl.dylib" ;; personalized install
))
改変のreload.lispを適当に他のディレクトリに置いておいて・・
rm -rf ~/quicklisp
ccl ―load quicklisp
(quicklisp-quickstart:install)
別のシェルで 改変後のreload.lispを置き換えようとしましたが
~/quicklisp/dists/quicklisp/software のディレクトリがありませんでした
(ql:quickload :dexador) を実行するとsoftwareディクトりができます
quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp が存在しているようなので
これを改変したもので置き換えて確認・・
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200230B4ED>
だめでした・・
もしかしてreload.lispを評価していないんじゃないかとも思うのですがやり方がわからないです
>>868
多分そうなんじゃないかと思うんですが初心者すぎてどうにもならないです
お手数かけます先輩方
このように変えてみました
(:darwin (:or "/usr/local/lib/libcrypto.dylib" ;; personalized install
))
(:darwin (:or "/usr/local/lib/libssl.dylib" ;; personalized install
))
改変のreload.lispを適当に他のディレクトリに置いておいて・・
rm -rf ~/quicklisp
ccl ―load quicklisp
(quicklisp-quickstart:install)
別のシェルで 改変後のreload.lispを置き換えようとしましたが
~/quicklisp/dists/quicklisp/software のディレクトリがありませんでした
(ql:quickload :dexador) を実行するとsoftwareディクトりができます
quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp が存在しているようなので
これを改変したもので置き換えて確認・・
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200230B4ED>
だめでした・・
もしかしてreload.lispを評価していないんじゃないかとも思うのですがやり方がわからないです
>>868
多分そうなんじゃないかと思うんですが初心者すぎてどうにもならないです
お手数かけます先輩方
870デフォルトの名無しさん
2021/03/18(木) 19:55:32.23ID:TYZwFG+5 >>869 のパターンだと /usr/local/lib にインストールしたやつ「だけ」がロードされる状態になってる
俺が言いたかったのは そいつが悪い (CCLと相性が悪い?) んじゃないかということ
本当に CCL がこの reload.lisp を読み込んでいるのか気になるなら
まず全部に x つけて ( "x/usr/local/lib/libssl.dylib" みたいに ) から quickloadしてみればいい
リストに合致する dylib がねーよ...と文句言われればOK
俺が言いたかったのは そいつが悪い (CCLと相性が悪い?) んじゃないかということ
本当に CCL がこの reload.lisp を読み込んでいるのか気になるなら
まず全部に x つけて ( "x/usr/local/lib/libssl.dylib" みたいに ) から quickloadしてみればいい
リストに合致する dylib がねーよ...と文句言われればOK
871デフォルトの名無しさん
2021/03/18(木) 20:50:01.39ID:eM8QRv2l Lisp以外は初心者だと思ってないから環境初期化して試さないんでしょ?
デフォ環境からカスタマイズどれくらいされてるかわからん状態でエスパーする意味ある?
手元ではappストアで配布のcclとhomebrewのデフォルトインストールのsbclで動いてるよ
usocketの環境問題の切り分けならsbcl試すべきでしょどっちもだめならlisp以前のもんだい
デフォ環境からカスタマイズどれくらいされてるかわからん状態でエスパーする意味ある?
手元ではappストアで配布のcclとhomebrewのデフォルトインストールのsbclで動いてるよ
usocketの環境問題の切り分けならsbcl試すべきでしょどっちもだめならlisp以前のもんだい
872デフォルトの名無しさん
2021/03/18(木) 21:25:00.91ID:txHaGLQk873デフォルトの名無しさん
2021/03/18(木) 21:30:32.20ID:txHaGLQk あとはすごく気になるのが
quicklispのインストールが終わった後で
CCLを(quit)してしまうと
ccl ―load quicklisp.lisp
をやっても(ql: を評価しないし
(load #P で~/quicklispのsetupを読み込むとそこで止まります
インストール後なら(ql: は使えるのでdexadorは読み込めるんですが・・
quicklispのインストールが終わった後で
CCLを(quit)してしまうと
ccl ―load quicklisp.lisp
をやっても(ql: を評価しないし
(load #P で~/quicklispのsetupを読み込むとそこで止まります
インストール後なら(ql: は使えるのでdexadorは読み込めるんですが・・
874デフォルトの名無しさん
2021/03/18(木) 22:02:51.90ID:ESPdjtZ2 もしかしてスレ建て以来最高に盛り上がってる?
次スレ必要?
次スレ必要?
875デフォルトの名無しさん
2021/03/18(木) 22:28:06.14ID:0KnUd1t3 >>874
早いよw
普通に環境依存の話だろうね
既に指摘されてるけど初心に返って、
環境変数全部見直すか、
タイムマシーンで以前の状態に戻すとか、
新規にユーザ作ってそれで試すとか、
そこら辺をちゃんと地道にやるしかないと思うよ
早いよw
普通に環境依存の話だろうね
既に指摘されてるけど初心に返って、
環境変数全部見直すか、
タイムマシーンで以前の状態に戻すとか、
新規にユーザ作ってそれで試すとか、
そこら辺をちゃんと地道にやるしかないと思うよ
876デフォルトの名無しさん
2021/03/18(木) 22:39:03.34ID:txHaGLQk >>875
質問する前から新規ユーザーで既にやってました
その辺は言われることなので
環境変数とかもそんなわけでライブラリパス以外は割とスカスカですね
lisp関係はここに出ている作業くらいのものなので
lisp関係の細かい設定とかそういうのは一切やってないんですよね
そういえばsbclに関して思うことがありますが
あれはOpenSSLを更新する前にビルドしてあったものですねえ・・
質問する前から新規ユーザーで既にやってました
その辺は言われることなので
環境変数とかもそんなわけでライブラリパス以外は割とスカスカですね
lisp関係はここに出ている作業くらいのものなので
lisp関係の細かい設定とかそういうのは一切やってないんですよね
そういえばsbclに関して思うことがありますが
あれはOpenSSLを更新する前にビルドしてあったものですねえ・・
877デフォルトの名無しさん
2021/03/18(木) 22:54:57.42ID:0KnUd1t3878デフォルトの名無しさん
2021/03/18(木) 23:19:23.97ID:txHaGLQk うーん・・調べてはいるんですが手がかりがあまりにもなさすぎて
どう手をつけたものかって感じです・・
git版でも動くようなのでなぜこうなるのかますますわかりませんが・・
どう手をつけたものかって感じです・・
git版でも動くようなのでなぜこうなるのかますますわかりませんが・・
879デフォルトの名無しさん
2021/03/19(金) 02:10:05.85ID:6x0jzlEw >>872
> software以下のディレクトリができるのが
> (ql:quickload :dexador)
> の後なので
> これ以降の修正しかできない感じです
「これ以降の修正」それでいいんです
(quit)状態で 修正して、起動して (ql:quickload :dexador) すると
依存するパッケージのソース変更を自動察知してコンパイルが走りますんで
今回のが openssl に起因する問題なのか不明だけど
縁の下なライブラリを自力で makeインストールするのはあまりオススメできませんね
脆弱性報告を随時チェックして...
configure オプションの推奨設定なんかを毎回調べて...
依存するライブラリ/プログラム群を必要に応じてアップデート ...
それらが Homebrew のアップデートコマンドを週一で叩くだけで済むならその方が良くないですか?
> software以下のディレクトリができるのが
> (ql:quickload :dexador)
> の後なので
> これ以降の修正しかできない感じです
「これ以降の修正」それでいいんです
(quit)状態で 修正して、起動して (ql:quickload :dexador) すると
依存するパッケージのソース変更を自動察知してコンパイルが走りますんで
今回のが openssl に起因する問題なのか不明だけど
縁の下なライブラリを自力で makeインストールするのはあまりオススメできませんね
脆弱性報告を随時チェックして...
configure オプションの推奨設定なんかを毎回調べて...
依存するライブラリ/プログラム群を必要に応じてアップデート ...
それらが Homebrew のアップデートコマンドを週一で叩くだけで済むならその方が良くないですか?
880デフォルトの名無しさん
2021/03/19(金) 03:54:01.31ID:RMQx/osX マカーでないのでよく分からんが、うちの界隈で新しいマックはdll(dylibっていうんだっけ?)の仕様代わって大変ってどこかで聞いた
invarid/unsafe accessとかそんな感じのエラー吐いてない?
相対パスの使用が厳しくなって怒られるらしい、ブロブをsls(macだとgrep?)に掛けてパスっぽいものを絶対パスに置換するだけでよいらしいが
invarid/unsafe accessとかそんな感じのエラー吐いてない?
相対パスの使用が厳しくなって怒られるらしい、ブロブをsls(macだとgrep?)に掛けてパスっぽいものを絶対パスに置換するだけでよいらしいが
881デフォルトの名無しさん
2021/03/19(金) 09:10:11.27ID:cqWDT3jG 細かいところから
>>873
> quicklispのインストールが終わった後で
> CCLを(quit)してしまうと
> ccl --load quicklisp.lisp
> をやっても(ql: を評価しないし
この quicklisp.lisp は quicklisp.org から落としてきたものだと思うけど、それなら当たり前。
quicklisp.lisp は Quicklisp のインストーラに過ぎなくて ql パッケージは入ってないから、 quicklisp.lisp を読むだけでは使えない。
インストール済みの Quicklisp を (load #P"~/quicklisp/setup.lisp") で読み込むと ql パッケージが使えるようになる。
起動の度に毎回 load するのが面倒なら、 quicklisp インストール後に (ql:add-to-init-file) で処理系が起動時に読み込むファイルで load するよう書いてくれる。
でも
> (load #P で~/quicklispのsetupを読み込むとそこで止まります
止まるわけないんだけどなあ。止まるってどういう意味でしょ。かっこの閉じ忘れとかじゃないよね。
>>873
> quicklispのインストールが終わった後で
> CCLを(quit)してしまうと
> ccl --load quicklisp.lisp
> をやっても(ql: を評価しないし
この quicklisp.lisp は quicklisp.org から落としてきたものだと思うけど、それなら当たり前。
quicklisp.lisp は Quicklisp のインストーラに過ぎなくて ql パッケージは入ってないから、 quicklisp.lisp を読むだけでは使えない。
インストール済みの Quicklisp を (load #P"~/quicklisp/setup.lisp") で読み込むと ql パッケージが使えるようになる。
起動の度に毎回 load するのが面倒なら、 quicklisp インストール後に (ql:add-to-init-file) で処理系が起動時に読み込むファイルで load するよう書いてくれる。
でも
> (load #P で~/quicklispのsetupを読み込むとそこで止まります
止まるわけないんだけどなあ。止まるってどういう意味でしょ。かっこの閉じ忘れとかじゃないよね。
882デフォルトの名無しさん
2021/03/19(金) 09:26:57.31ID:cqWDT3jG >>869 でUSOCKET:CONNECTION-REFUSED-ERROR が出たとか言ってるあたり、ソケットのレベルで導通してるかも気になる。
これは成功するんだよね?
? (usocket:socket-connect "ja.wikipedia.org" 443)
#<USOCKET:STREAM-USOCKET #x3020020A09FD>
ちなみに俺の環境
? (lisp-implementation-type)
"Clozure Common Lisp"
? (lisp-implementation-version)
"Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664"
これは成功するんだよね?
? (usocket:socket-connect "ja.wikipedia.org" 443)
#<USOCKET:STREAM-USOCKET #x3020020A09FD>
ちなみに俺の環境
? (lisp-implementation-type)
"Clozure Common Lisp"
? (lisp-implementation-version)
"Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664"
883デフォルトの名無しさん
2021/03/19(金) 16:35:51.38ID:0qPpyi/x 遅くなりましたすみません開始します
>>879
手順把握しました
makeに関しては昔MacPortsでやるとうまくいかないやつがちらほらあって
手動で細かく制御するとできるとかがあったのでそれっきりだったんですよね
今ではそんなこともないということでしたら考え直します
おすすめはhomebrewでしょうか?
>>880
high sierraなのでその辺は大丈夫なはず・・です
>>881
(load #P"~/quicklisp/setup.lisp")
これを実行するとそのまま止まって次のプロンプト(?)が出てこないんです
原因は全く不明なんですが
(ql:add-to-init-file) これはやってみます
>>879
手順把握しました
makeに関しては昔MacPortsでやるとうまくいかないやつがちらほらあって
手動で細かく制御するとできるとかがあったのでそれっきりだったんですよね
今ではそんなこともないということでしたら考え直します
おすすめはhomebrewでしょうか?
>>880
high sierraなのでその辺は大丈夫なはず・・です
>>881
(load #P"~/quicklisp/setup.lisp")
これを実行するとそのまま止まって次のプロンプト(?)が出てこないんです
原因は全く不明なんですが
(ql:add-to-init-file) これはやってみます
884デフォルトの名無しさん
2021/03/19(金) 16:40:05.22ID:0qPpyi/x >>882
For more information, see http://www.quicklisp.org/beta/
NIL
? (lisp-implementation-type)
"Clozure Common Lisp"
? (lisp-implementation-version)
"Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664"
?
これは大丈夫そうですね
For more information, see http://www.quicklisp.org/beta/
NIL
? (lisp-implementation-type)
"Clozure Common Lisp"
? (lisp-implementation-version)
"Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664"
?
これは大丈夫そうですね
885デフォルトの名無しさん
2021/03/19(金) 16:49:39.87ID:0qPpyi/x (ql:add-to-init-file) を実行すると
~/.ccl-init.lisp が生成されるようです
(quit)で終了して・・
CCLを単独で起動すると
(ql:quickload :dexador) は通りました
この状態では以下変わりません
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200311B01D>
.ccl-init.lispを見るとsetupを実行しているように見えなくもないのですが
特に止まるとかそういうことはこの手順だとないようです
次にSSLライブラリを読むかどうかのチェックをしてみます
~/.ccl-init.lisp が生成されるようです
(quit)で終了して・・
CCLを単独で起動すると
(ql:quickload :dexador) は通りました
この状態では以下変わりません
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200311B01D>
.ccl-init.lispを見るとsetupを実行しているように見えなくもないのですが
特に止まるとかそういうことはこの手順だとないようです
次にSSLライブラリを読むかどうかのチェックをしてみます
886デフォルトの名無しさん
2021/03/19(金) 16:58:13.55ID:0qPpyi/x reload.lispを変更しlibssl , libcryptを見に行かないようにしました
CCLを起動しdexadorを読みます
CCL is free software. It is distributed under the terms of the Apache
Licence, Version 2.0.
? (ql:quickload :dexador)
To load "dexador":
Load 1 ASDF system:
dexador
; Loading "dexador"
..................................................
[package dexador.encoding]........................
[package dexador.connection-cache]................
[package dexador.decoding-stream].................
[package dexador.keep-alive-stream]...............
[package dexador.util]............................
[package dexador.body]............................
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x302001DAED7D>
これは・・
再確認します
CCLを起動しdexadorを読みます
CCL is free software. It is distributed under the terms of the Apache
Licence, Version 2.0.
? (ql:quickload :dexador)
To load "dexador":
Load 1 ASDF system:
dexador
; Loading "dexador"
..................................................
[package dexador.encoding]........................
[package dexador.connection-cache]................
[package dexador.decoding-stream].................
[package dexador.keep-alive-stream]...............
[package dexador.util]............................
[package dexador.body]............................
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x302001DAED7D>
これは・・
再確認します
887デフォルトの名無しさん
2021/03/19(金) 17:00:59.35ID:0qPpyi/x 更新して書き換えられたかもと思いましたがそんなことはなかったようです
reload.lispはこのようになっていました
(:darwin (:or "x/usr/local/lib/libcrypto.dylib" ;; personalized install
))
・・中略・・
(:darwin (:or "x/usr/local/lib/libssl.dylib" ;; personalized install
))
手がかりになるでしょうか?
reload.lispはこのようになっていました
(:darwin (:or "x/usr/local/lib/libcrypto.dylib" ;; personalized install
))
・・中略・・
(:darwin (:or "x/usr/local/lib/libssl.dylib" ;; personalized install
))
手がかりになるでしょうか?
888デフォルトの名無しさん
2021/03/19(金) 17:22:35.07ID:0qPpyi/x ~/.cacheを消し忘れていたので実行後に
再度(ql:quickload :dexador)をやりました
reload.lispは改変のまま置かれていますが
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200230142D>
ここは変わりませんでした
再度(ql:quickload :dexador)をやりました
reload.lispは改変のまま置かれていますが
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200230142D>
ここは変わりませんでした
889デフォルトの名無しさん
2021/03/19(金) 18:14:15.37ID:6x0jzlEw >>887 これは予想がつく
こっちでも試してみたんだが ql:quickload の挙動は
○○○.lisp のタイムスタンプが コンパイル済みファイル ( ~/.cache/. . ... . . /○○○.dx64fsl )
よりも「新しくなった時」に ソース変更あり!と判断しているようだ
つまりまだ「新しい」reload.dx64fsl がキャッシュにあるのでそれをロードして何も変化が起きなかったんだろうなと
準備しておいた 改変済み reload.lisp (古い) に差し替えじゃなくて
生で置かれた reload.lisp を直に編集して保存 (新しい) しとけば良かったと
だとしても >>888 の説明がつかん
そちらの手順に何か勘違いがあるんじゃないかな
こっちでも試してみたんだが ql:quickload の挙動は
○○○.lisp のタイムスタンプが コンパイル済みファイル ( ~/.cache/. . ... . . /○○○.dx64fsl )
よりも「新しくなった時」に ソース変更あり!と判断しているようだ
つまりまだ「新しい」reload.dx64fsl がキャッシュにあるのでそれをロードして何も変化が起きなかったんだろうなと
準備しておいた 改変済み reload.lisp (古い) に差し替えじゃなくて
生で置かれた reload.lisp を直に編集して保存 (新しい) しとけば良かったと
だとしても >>888 の説明がつかん
そちらの手順に何か勘違いがあるんじゃないかな
890デフォルトの名無しさん
2021/03/19(金) 18:30:33.54ID:6x0jzlEw 繰り返しになるけど、まずは
(:darwin (:or "X/opt/local/lib/libcrypto.dylib" ;; MacPorts
"X/sw/lib/libcrypto.dylib" ;; Fink
"X/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
"X/usr/local/lib/libcrypto.dylib" ;; personalized install
"Xlibcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"X/usr/lib/libcrypto.dylib"))
libssl.dylib も同様に改変して
これを読ませてエラーになる事を確認してから
(:darwin (:or "X/opt/local/lib/libcrypto.dylib" ;; MacPorts
"X/sw/lib/libcrypto.dylib" ;; Fink
"X/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
"X/usr/local/lib/libcrypto.dylib" ;; personalized install
"libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"X/usr/lib/libcrypto.dylib"))
これで試してみましょう
(:darwin (:or "X/opt/local/lib/libcrypto.dylib" ;; MacPorts
"X/sw/lib/libcrypto.dylib" ;; Fink
"X/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
"X/usr/local/lib/libcrypto.dylib" ;; personalized install
"Xlibcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"X/usr/lib/libcrypto.dylib"))
libssl.dylib も同様に改変して
これを読ませてエラーになる事を確認してから
(:darwin (:or "X/opt/local/lib/libcrypto.dylib" ;; MacPorts
"X/sw/lib/libcrypto.dylib" ;; Fink
"X/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
"X/usr/local/lib/libcrypto.dylib" ;; personalized install
"libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto
"X/usr/lib/libcrypto.dylib"))
これで試してみましょう
891デフォルトの名無しさん
2021/03/19(金) 19:41:49.55ID:0qPpyi/x >>889-890
手順に気をつけてもう一度やって見ました
まずは.cacheの
rm -rf common-lisp
~/quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp
を直接編集してタイムスタンプが変わっていることを確認します
>ccl
? (ql:quickload :dexador)
[package dexador.util]............................
[package dexador.body]............................
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
※ここでreload.lispを確認して改変されたままであることはわかりました
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225506D>
こうなるようです・・
手順に気をつけてもう一度やって見ました
まずは.cacheの
rm -rf common-lisp
~/quicklisp/dists/quicklisp/software/cl+ssl-20210228-git/src/reload.lisp
を直接編集してタイムスタンプが変わっていることを確認します
>ccl
? (ql:quickload :dexador)
[package dexador.util]............................
[package dexador.body]............................
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
※ここでreload.lispを確認して改変されたままであることはわかりました
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225506D>
こうなるようです・・
892デフォルトの名無しさん
2021/03/19(金) 19:45:45.88ID:0qPpyi/x 思ったんですが
どの変数がpathを握っているのか表示できないものでしょうか?
どの変数がpathを握っているのか表示できないものでしょうか?
893デフォルトの名無しさん
2021/03/19(金) 21:08:00.19ID:OkAVL8Bz 結局何がしたくて、何が出来てて、何が出来てないんだっけ?
894デフォルトの名無しさん
2021/03/19(金) 21:13:21.69ID:RMQx/osX 普段過疎ってるのに急に優しさに満ちたな…
ついでに興味深いレスも書き捨ててってよ
ついでに興味深いレスも書き捨ててってよ
895デフォルトの名無しさん
2021/03/19(金) 22:35:05.73ID:0qPpyi/x >>893
まずはCCLでdexador動くところまでですかね・・
CCLはObjCのインターフェース持っててnibも読めるので
ネイティブアプリのように振る舞えるかなと思いまして
今の問題が解決したら進めてみようと思ってます
毎日お手数おかけします先輩方
ほんとすいません
まずはCCLでdexador動くところまでですかね・・
CCLはObjCのインターフェース持っててnibも読めるので
ネイティブアプリのように振る舞えるかなと思いまして
今の問題が解決したら進めてみようと思ってます
毎日お手数おかけします先輩方
ほんとすいません
896デフォルトの名無しさん
2021/03/19(金) 22:41:03.30ID:CjYMRRBz897デフォルトの名無しさん
2021/03/19(金) 23:00:48.11ID:6x0jzlEw >>891 これでとりあえず openssl は無罪だったと思っていいのかな
>>892
ちょっと意味が分からないけど
この先はエラー発生時のDEBUG操作をちゃんと調べるしかないかも
実は自分もほぼ初心者なので教えられる事はなさそう
それか丹念に dexador のソースを追って内部進行を再現してみるとか?
src/dexador.lisp :45 (defun get (uri &rest args
src/dexador.lisp :50 (apply #'request uri :method :get args))
backend/usocket.lisp :423 (defun-careful request (uri &rest args ...
結構大変そう
>>894
優しさというか
未知のトラブルの際に実際どうするのが正解なのか自分も知りたいだけっすね
なので「なんか分からんうちに治りましたあw」で終わられても困る
>>892
ちょっと意味が分からないけど
この先はエラー発生時のDEBUG操作をちゃんと調べるしかないかも
実は自分もほぼ初心者なので教えられる事はなさそう
それか丹念に dexador のソースを追って内部進行を再現してみるとか?
src/dexador.lisp :45 (defun get (uri &rest args
src/dexador.lisp :50 (apply #'request uri :method :get args))
backend/usocket.lisp :423 (defun-careful request (uri &rest args ...
結構大変そう
>>894
優しさというか
未知のトラブルの際に実際どうするのが正解なのか自分も知りたいだけっすね
なので「なんか分からんうちに治りましたあw」で終わられても困る
898デフォルトの名無しさん
2021/03/19(金) 23:10:41.34ID:0qPpyi/x >>896
すいません見落としてました
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (usocket:socket-connect "ja.wikipedia.org" 443)
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225C34D>
> While executing: USOCKET::RAISE-ERROR-FROM-ID, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
reload.lispがオリジナルでも改変でも変わらないようです
すいません見落としてました
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador].
(:DEXADOR)
? (usocket:socket-connect "ja.wikipedia.org" 443)
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225C34D>
> While executing: USOCKET::RAISE-ERROR-FROM-ID, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
reload.lispがオリジナルでも改変でも変わらないようです
899デフォルトの名無しさん
2021/03/19(金) 23:16:50.39ID:0qPpyi/x >>897
うーん・・pathを無効にしてもquicklisp自体は動いてるように見えるんですよね
とりあえず現在有効にした状態なので
なんとなくこうしたら挙動が変わりました
? (dex:get "https://nicovideo.jp" )
> Error: Can't resolve foreign symbol "_SSL_get_peer_certificate"
> While executing: CCL::RESOLVE-EEP, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
以前はkilled: 9でccl自体落ちてたんですよね・・
symbolがないとかは通常ならわかりやすいんですがCCLだとどうなんでしょう
でもこれ明らかに外部ライブラリ呼びに行ってしくってる感じですねえ
うーん・・pathを無効にしてもquicklisp自体は動いてるように見えるんですよね
とりあえず現在有効にした状態なので
なんとなくこうしたら挙動が変わりました
? (dex:get "https://nicovideo.jp" )
> Error: Can't resolve foreign symbol "_SSL_get_peer_certificate"
> While executing: CCL::RESOLVE-EEP, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
以前はkilled: 9でccl自体落ちてたんですよね・・
symbolがないとかは通常ならわかりやすいんですがCCLだとどうなんでしょう
でもこれ明らかに外部ライブラリ呼びに行ってしくってる感じですねえ
900デフォルトの名無しさん
2021/03/19(金) 23:18:31.64ID:qP05xHwq >>898
ここやん
ここやん
901デフォルトの名無しさん
2021/03/19(金) 23:38:05.76ID:6x0jzlEw うちの環境だと
# Homebrew版
ccl-dev❦: nm /usr/local/opt/openssl/lib/libssl.dylib | grep SSL_get_peer_certificate
0000000000018d23 T _SSL_get_peer_certificate
# system default 版
ccl-dev❦: nm /usr/lib/libssl.dylib | grep SSL_get_peer_certificate
0000000000037290 T _SSL_get_peer_certificate
>>899 そちらで
nm /usr/local/lib/libssl.dylib | grep SSL_get_peer_certificate
を叩くとどう出ます?
# Homebrew版
ccl-dev❦: nm /usr/local/opt/openssl/lib/libssl.dylib | grep SSL_get_peer_certificate
0000000000018d23 T _SSL_get_peer_certificate
# system default 版
ccl-dev❦: nm /usr/lib/libssl.dylib | grep SSL_get_peer_certificate
0000000000037290 T _SSL_get_peer_certificate
>>899 そちらで
nm /usr/local/lib/libssl.dylib | grep SSL_get_peer_certificate
を叩くとどう出ます?
902デフォルトの名無しさん
2021/03/19(金) 23:41:24.44ID:0qPpyi/x903デフォルトの名無しさん
2021/03/19(金) 23:43:05.81ID:6x0jzlEw dexador のソースを読むと (dex:get "...." ) はおおよそ次のように進行する
;; ------------------------------------------
(defvar uri (quri:uri "https://ja.wikipedia.org/wiki/Common_Lisp"))
(defvar connect-timeout dex:*default-connect-timeout* );; 10 {秒}
(defvar con-uri (quri:uri uri));; 結局 con-uri == uri になる
(defvar connection (usocket:socket-connect (quri:uri-host con-uri) (quri:uri-port con-uri)
:timeout connect-timeout :element-type '(unsigned-byte 8)))
(defvar stream (usocket:socket-stream connection))
(defvar scheme (quri:uri-scheme uri));; "https"
(defvar read-timeout dex:*default-read-timeout* );; 10 {秒}
(setf (usocket:socket-option connection :receive-timeout) read-timeout)
(cl+ssl:ensure-initialized) ;; SSLの前準備的な? 返値はNIL
(defparameter *ca-bundle*
(uiop:native-namestring
(asdf:system-relative-pathname :dexador #P"certs/cacert.pem")))
;; ...dexador-20210228-git/certs/cacert.pem ルート証明書みたいな?
(defvar ctx (cl+ssl:make-context :verify-mode cl+ssl:+ssl-verify-peer+ :verify-location *ca-bundle*))
(defvar insecure dex:*not-verify-ssl*);; この値は NIL であるべき (セキュアってこと)
(cl+ssl:with-global-context (ctx :auto-free-p t)
(cl+ssl:make-ssl-client-stream stream
:hostname (quri:uri-host uri)
:verify (not insecure)
:key nil
:certificate nil
:password nil))
;; --------------------------------------------------------------------------------
libssl.dylib の問題で解決ならもう↑これは不要かな
まあ面白かったから気にしないでくれ
;; ------------------------------------------
(defvar uri (quri:uri "https://ja.wikipedia.org/wiki/Common_Lisp"))
(defvar connect-timeout dex:*default-connect-timeout* );; 10 {秒}
(defvar con-uri (quri:uri uri));; 結局 con-uri == uri になる
(defvar connection (usocket:socket-connect (quri:uri-host con-uri) (quri:uri-port con-uri)
:timeout connect-timeout :element-type '(unsigned-byte 8)))
(defvar stream (usocket:socket-stream connection))
(defvar scheme (quri:uri-scheme uri));; "https"
(defvar read-timeout dex:*default-read-timeout* );; 10 {秒}
(setf (usocket:socket-option connection :receive-timeout) read-timeout)
(cl+ssl:ensure-initialized) ;; SSLの前準備的な? 返値はNIL
(defparameter *ca-bundle*
(uiop:native-namestring
(asdf:system-relative-pathname :dexador #P"certs/cacert.pem")))
;; ...dexador-20210228-git/certs/cacert.pem ルート証明書みたいな?
(defvar ctx (cl+ssl:make-context :verify-mode cl+ssl:+ssl-verify-peer+ :verify-location *ca-bundle*))
(defvar insecure dex:*not-verify-ssl*);; この値は NIL であるべき (セキュアってこと)
(cl+ssl:with-global-context (ctx :auto-free-p t)
(cl+ssl:make-ssl-client-stream stream
:hostname (quri:uri-host uri)
:verify (not insecure)
:key nil
:certificate nil
:password nil))
;; --------------------------------------------------------------------------------
libssl.dylib の問題で解決ならもう↑これは不要かな
まあ面白かったから気にしないでくれ
904デフォルトの名無しさん
2021/03/19(金) 23:43:16.86ID:0qPpyi/x /usr/local/libで参照先を見ました
libssl.dylib -> libssl.3.dylib
調べたら3.0.0 alphaになってますねOpenSSL
もしかしてこのせいですかね
libssl.dylib -> libssl.3.dylib
調べたら3.0.0 alphaになってますねOpenSSL
もしかしてこのせいですかね
905デフォルトの名無しさん
2021/03/19(金) 23:44:59.22ID:0qPpyi/x もう少し教えてください
おすすめはhomebrewってことでいいでしょうか?
おすすめはhomebrewってことでいいでしょうか?
906デフォルトの名無しさん
2021/03/20(土) 00:08:21.55ID:SWqHaUsq Wikipediaより OpenSSL
開発元 The OpenSSL Project
最新版 1.1.1j - 2021年2月16日(30日前)[1] [±]
最新評価版 3.0 Alpha 13 - 2021年3月11日
Homebrew版は 1.1.1j でした
3.0はまだ「分かってる人」だけが使う段階なのでしょう
Homebrew なんですが...
High Sierraはもうとっくに正式サポートから外れたので
パッケージのインストールがほぼソースからコンパイルになるんですわ
以前はコンパイル済みの (bottole) が提供されて、 コンパイルしたければオプションで選べたんですがね
こっちは惰性で使ってるだけなので、MacPorts の選択もアリだと思います
開発元 The OpenSSL Project
最新版 1.1.1j - 2021年2月16日(30日前)[1] [±]
最新評価版 3.0 Alpha 13 - 2021年3月11日
Homebrew版は 1.1.1j でした
3.0はまだ「分かってる人」だけが使う段階なのでしょう
Homebrew なんですが...
High Sierraはもうとっくに正式サポートから外れたので
パッケージのインストールがほぼソースからコンパイルになるんですわ
以前はコンパイル済みの (bottole) が提供されて、 コンパイルしたければオプションで選べたんですがね
こっちは惰性で使ってるだけなので、MacPorts の選択もアリだと思います
907デフォルトの名無しさん
2021/03/20(土) 00:46:30.47ID:ABymnbS3 わかりましたそうしたら・・
とりあえず1.1.1jをmakeしてみます
明日また報告します
いつもありがとうございます
とりあえず1.1.1jをmakeしてみます
明日また報告します
いつもありがとうございます
908デフォルトの名無しさん
2021/03/20(土) 02:09:09.50ID:SWqHaUsq 一番先に試すべきは system default の dylib で dex:get を試すべきなんだけど... まあいいや
> Error: Can't resolve foreign symbol "_SSL_get_peer_certificate"
あとこれは当初の CONNECTION-REFUSED-ERROR とは別に現れたエラーなのかな?
そうだとして推測すると
当初は /usr/local/lib/libssl.dylib に存在しないシンボル _SSL_get_peer_certificate を /usr/lib/libssl.dylib から拾い上げて進行してたんじゃないかな
そして他のシンボルも opensslバージョン違いでミックスされる、その結果ちょっとした不整合が生じて向こうのサーバーに拒否られたと
SBCLで大丈夫だったのは個々のLISP実装によって通信パラメータの扱いに多少の差があってもおかしくないから
「通信したいんでしょ?なのでココのnil値は妥当な値に変えておきました」みたいな感じ
ソース改変で /usr/local/lib/libssl.dylib しか見えなくなった状態では
_SSL_get_peer_certificate がどこにも見つからねーよ... と 別のエラーが生じたと
雑だけど大体当たってるんじゃないかな
> Error: Can't resolve foreign symbol "_SSL_get_peer_certificate"
あとこれは当初の CONNECTION-REFUSED-ERROR とは別に現れたエラーなのかな?
そうだとして推測すると
当初は /usr/local/lib/libssl.dylib に存在しないシンボル _SSL_get_peer_certificate を /usr/lib/libssl.dylib から拾い上げて進行してたんじゃないかな
そして他のシンボルも opensslバージョン違いでミックスされる、その結果ちょっとした不整合が生じて向こうのサーバーに拒否られたと
SBCLで大丈夫だったのは個々のLISP実装によって通信パラメータの扱いに多少の差があってもおかしくないから
「通信したいんでしょ?なのでココのnil値は妥当な値に変えておきました」みたいな感じ
ソース改変で /usr/local/lib/libssl.dylib しか見えなくなった状態では
_SSL_get_peer_certificate がどこにも見つからねーよ... と 別のエラーが生じたと
雑だけど大体当たってるんじゃないかな
909882
2021/03/20(土) 03:09:12.75ID:2VI0Nxdp >>898 見る限り、 connect する段階で失敗してるように見えるなあ。
俺からは二つ試してみてもらいたい。
一つ目。 (trace openmcl-socket:make-socket) を呼んでソケットを開く関数に trace を出させた後で接続を試して、関数にどんな引数が渡ってるのか見ること。
俺が試したらこんな感じになる:
? (trace openmcl-socket:make-socket)
NIL
? (usocket:socket-connect "ja.wikipedia.org" 443)
0> Calling (MAKE-SOCKET :TYPE :STREAM :ADDRESS-FAMILY :INTERNET6 :REMOTE-ADDRESS #<IP6-SOCKET-ADDRESS [2001:df2:e500:ed1a::1]:443> :FORMAT :TEXT :EXTERNAL-FORMAT :UNIX :DEADLINE NIL :NODELAY NIL :CONNECT-TIMEOUT NIL :INPUT-TIMEOUT NIL)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/24) #x30200212C1CD>
#<USOCKET:STREAM-USOCKET #x30200212BE4D>
二つ目。IPv4 ソケットで connect 出来るか試してみて欲しい。
ソース見る限り usocket は IPv6 ソケットを作りたがるっぽいが、IPv4 だとどうなのか見てみたいから。
IPv4での繋ぎ方は以下:
(openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
俺が trace も有効な状態で試した結果は以下のようになった:
? (openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
0> Calling (MAKE-SOCKET :TYPE :STREAM :REMOTE-HOST "ja.wikipedia.org" :REMOTE-PORT 443 :ADDRESS-FAMILY :INTERNET)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/32) #x30200215E80D>
#<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/32) #x30200215E80D>
俺からは二つ試してみてもらいたい。
一つ目。 (trace openmcl-socket:make-socket) を呼んでソケットを開く関数に trace を出させた後で接続を試して、関数にどんな引数が渡ってるのか見ること。
俺が試したらこんな感じになる:
? (trace openmcl-socket:make-socket)
NIL
? (usocket:socket-connect "ja.wikipedia.org" 443)
0> Calling (MAKE-SOCKET :TYPE :STREAM :ADDRESS-FAMILY :INTERNET6 :REMOTE-ADDRESS #<IP6-SOCKET-ADDRESS [2001:df2:e500:ed1a::1]:443> :FORMAT :TEXT :EXTERNAL-FORMAT :UNIX :DEADLINE NIL :NODELAY NIL :CONNECT-TIMEOUT NIL :INPUT-TIMEOUT NIL)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/24) #x30200212C1CD>
#<USOCKET:STREAM-USOCKET #x30200212BE4D>
二つ目。IPv4 ソケットで connect 出来るか試してみて欲しい。
ソース見る限り usocket は IPv6 ソケットを作りたがるっぽいが、IPv4 だとどうなのか見てみたいから。
IPv4での繋ぎ方は以下:
(openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
俺が trace も有効な状態で試した結果は以下のようになった:
? (openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
0> Calling (MAKE-SOCKET :TYPE :STREAM :REMOTE-HOST "ja.wikipedia.org" :REMOTE-PORT 443 :ADDRESS-FAMILY :INTERNET)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/32) #x30200215E80D>
#<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/32) #x30200215E80D>
910デフォルトの名無しさん
2021/03/20(土) 16:30:52.27ID:ABymnbS3 遅くなりました
>>908
/usr/localではなく/usr/libを見るように変えました
いつものようにキャッシュを消してからCCL起動
(ql:quickload :dexador) ののちに
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x302003C411CD>
? (dex:get "https://nicovideo.jp" )
Killed: 9
nicovideoを参照するとkilled 9でCCL自体落ちるようです
>>908
/usr/localではなく/usr/libを見るように変えました
いつものようにキャッシュを消してからCCL起動
(ql:quickload :dexador) ののちに
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x302003C411CD>
? (dex:get "https://nicovideo.jp" )
Killed: 9
nicovideoを参照するとkilled 9でCCL自体落ちるようです
911デフォルトの名無しさん
2021/03/20(土) 16:35:31.22ID:ABymnbS3 >>909
現在/usr/libを参照している状態でやってます
? (trace openmcl-socket:make-socket)
NIL
? (usocket:socket-connect "ja.wikipedia.org" 443)
> Error: There is no package named "USOCKET" .
> While executing: CCL::%PARSE-TOKEN, in process listener(1).
おや・・・no package named が出ると?
? (openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
0> Calling (MAKE-SOCKET :TYPE :STREAM :REMOTE-HOST "ja.wikipedia.org" :REMOTE-PORT 443 :ADDRESS-FAMILY :INTERNET)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x302000A0E4ED>
#<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x302000A0E4ED>
?
こんな感じになるようです
OpenSSLの1.1.1jのビルドしてきます・・
現在/usr/libを参照している状態でやってます
? (trace openmcl-socket:make-socket)
NIL
? (usocket:socket-connect "ja.wikipedia.org" 443)
> Error: There is no package named "USOCKET" .
> While executing: CCL::%PARSE-TOKEN, in process listener(1).
おや・・・no package named が出ると?
? (openmcl-socket:make-socket :type :stream :remote-host "ja.wikipedia.org" :remote-port 443 :address-family :internet)
0> Calling (MAKE-SOCKET :TYPE :STREAM :REMOTE-HOST "ja.wikipedia.org" :REMOTE-PORT 443 :ADDRESS-FAMILY :INTERNET)
<0 MAKE-SOCKET returned #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x302000A0E4ED>
#<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x302000A0E4ED>
?
こんな感じになるようです
OpenSSLの1.1.1jのビルドしてきます・・
912デフォルトの名無しさん
2021/03/20(土) 17:01:19.75ID:ABymnbS3 1.1.1j できました
libssl.dylib -> libssl.1.1.dylib
libcrypto.dylib -> libcrypto.1.1.dylib
nm /usr/local/opt/openssl/lib/libssl.dylib | grep SSL_get_peer_certificate
nm /usr/local/lib/libssl.dylib | grep SSL_get_peer_certificate
000000000001e290 T _SSL_get_peer_certificate
Symbolはありますね
libssl.dylib -> libssl.1.1.dylib
libcrypto.dylib -> libcrypto.1.1.dylib
nm /usr/local/opt/openssl/lib/libssl.dylib | grep SSL_get_peer_certificate
nm /usr/local/lib/libssl.dylib | grep SSL_get_peer_certificate
000000000001e290 T _SSL_get_peer_certificate
Symbolはありますね
913デフォルトの名無しさん
2021/03/20(土) 17:09:57.89ID:ABymnbS3 キャッシュを消して
reload.lispを標準に戻します
CCL起動からdexadorをquickload…
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200229120D>
? (dex:get "https://nicovideo.jp" )
Killed: 9
ええ・・
/usr/localのみ参照するreload.lispへ戻します
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225C10D>
? (dex:get "https://nicovideo.jp" )
Killed: 9
またCCLが落ちました
reload.lispを標準に戻します
CCL起動からdexadorをquickload…
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200229120D>
? (dex:get "https://nicovideo.jp" )
Killed: 9
ええ・・
/usr/localのみ参照するreload.lispへ戻します
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
> Error: Error #<USOCKET:CONNECTION-REFUSED-ERROR #x30200225C10D>
? (dex:get "https://nicovideo.jp" )
Killed: 9
またCCLが落ちました
914デフォルトの名無しさん
2021/03/20(土) 17:15:43.39ID:ABymnbS3 CCL本体でSSL関係を静的リンクしているかチェックしてみましたが
そのようなことはありませんでした
うーん・・
そのようなことはありませんでした
うーん・・
915デフォルトの名無しさん
2021/03/20(土) 17:27:17.85ID:ABymnbS3 念のため
OpenSSL 1.1.1jの make testを再度実行した結果
../test/recipes/95-test_external_boringssl.t ....... skipped: No external tests in this configuration
../test/recipes/95-test_external_krb5.t ............ skipped: No external tests in this configuration
../test/recipes/95-test_external_pyca.t ............ skipped: No external tests in this configuration
../test/recipes/99-test_ecstress.t ................. ok
../test/recipes/99-test_fuzz.t ..................... ok
All tests successful.
Files=158, Tests=2629, 207 wallclock secs ( 3.41 usr 0.43 sys + 124.00 cusr 66.96 csys = 194.80 CPU)
Result: PASS
OpenSSL 1.1.1jの make testを再度実行した結果
../test/recipes/95-test_external_boringssl.t ....... skipped: No external tests in this configuration
../test/recipes/95-test_external_krb5.t ............ skipped: No external tests in this configuration
../test/recipes/95-test_external_pyca.t ............ skipped: No external tests in this configuration
../test/recipes/99-test_ecstress.t ................. ok
../test/recipes/99-test_fuzz.t ..................... ok
All tests successful.
Files=158, Tests=2629, 207 wallclock secs ( 3.41 usr 0.43 sys + 124.00 cusr 66.96 csys = 194.80 CPU)
Result: PASS
916882
2021/03/20(土) 22:06:24.57ID:2VI0Nxdp >>911 見ると IPv4 ソケットは繋がるっぽいな。じゃあ ccl に IPv4 を使わせてみて試そう。
以下の手順を試してみて欲しい。
1. あらかじめ SSL の設定は元に戻しておく。
(ここは 911 がどうやったか分からんので自分でやってくれ)
2. asdf のキャッシュを消す。
~/.cache/common-lisp/ 以下を全削除。
3. ccl を起動して、以下の順に打つ:
(setf *features* (delete :ipv6 *features*))
(ql:quickload "dexador")
(dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
以下の手順を試してみて欲しい。
1. あらかじめ SSL の設定は元に戻しておく。
(ここは 911 がどうやったか分からんので自分でやってくれ)
2. asdf のキャッシュを消す。
~/.cache/common-lisp/ 以下を全削除。
3. ccl を起動して、以下の順に打つ:
(setf *features* (delete :ipv6 *features*))
(ql:quickload "dexador")
(dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
917デフォルトの名無しさん
2021/03/20(土) 22:34:20.86ID:ABymnbS3 >>916
やってみました
通常通り初期化、同条件の/usr/libを参照する形に戻しています
? (setf *features* (delete :ipv6 *features*))
(:QUICKLISP :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-MACOSX :OS-UNIX :ASDF-UNICODE :PRIMARY-CLASSES :COMMON-LISP :OPENMCL :CCL :CCL-1.2 :CCL-1.3 :CCL-1.4 :CCL-1.5 :CCL-1.6 :CCL-1.7 :CCL-1.8 :CCL-1.9 :CCL-1.10 :CCL-1.11 :CCL-1.12 :CLOZURE :CLOZURE-COMMON-LISP :ANSI-CL :UNIX :OPENMCL-UNICODE-STRINGS :OPENMCL-NATIVE-THREADS :OPENMCL-PARTIAL-MOP :MCL-COMMON-MOP-SUBSET :OPENMCL-MOP-2 :OPENMCL-PRIVATE-HASH-TABLES :STATIC-CONSES-SHOULD-WORK-WITH-EGC-IN-CCL :PACKAGE-LOCAL-NICKNAMES :X86-64 :X86_64 :X86-TARGET :X86-HOST :X8664-TARGET :X8664-HOST :DARWIN-HOST :DARWIN-TARGET :DARWINX86-TARGET :DARWINX8664-TARGET :DARWINX8664-HOST :64-BIT-TARGET :64-BIT-HOST :DARWIN :LITTLE-ENDIAN-TARGET :LITTLE-ENDIAN-HOST)
? (ql:quickload "dexador")
To load "dexador":
Load 1 ASDF system:
#〜中略〜
("dexador")
# reload.lispの変更点を再確認、OK
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
"<!DOCTYPE html>
<html class=¥"client-nojs¥" lang=¥"ja¥" dir=¥"ltr¥">
#〜中略〜
</body></html>"
200
#<HASH-TABLE :TEST EQUAL size 22/60 #x30200316897D>
#<QURI.URI.HTTP:URI-HTTPS https://ja.wikipedia.org/wiki/Common_Lisp>
#<SSL-STREAM for #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x3020030AE94D>>
?
成功したように見えます・・!
やってみました
通常通り初期化、同条件の/usr/libを参照する形に戻しています
? (setf *features* (delete :ipv6 *features*))
(:QUICKLISP :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-MACOSX :OS-UNIX :ASDF-UNICODE :PRIMARY-CLASSES :COMMON-LISP :OPENMCL :CCL :CCL-1.2 :CCL-1.3 :CCL-1.4 :CCL-1.5 :CCL-1.6 :CCL-1.7 :CCL-1.8 :CCL-1.9 :CCL-1.10 :CCL-1.11 :CCL-1.12 :CLOZURE :CLOZURE-COMMON-LISP :ANSI-CL :UNIX :OPENMCL-UNICODE-STRINGS :OPENMCL-NATIVE-THREADS :OPENMCL-PARTIAL-MOP :MCL-COMMON-MOP-SUBSET :OPENMCL-MOP-2 :OPENMCL-PRIVATE-HASH-TABLES :STATIC-CONSES-SHOULD-WORK-WITH-EGC-IN-CCL :PACKAGE-LOCAL-NICKNAMES :X86-64 :X86_64 :X86-TARGET :X86-HOST :X8664-TARGET :X8664-HOST :DARWIN-HOST :DARWIN-TARGET :DARWINX86-TARGET :DARWINX8664-TARGET :DARWINX8664-HOST :64-BIT-TARGET :64-BIT-HOST :DARWIN :LITTLE-ENDIAN-TARGET :LITTLE-ENDIAN-HOST)
? (ql:quickload "dexador")
To load "dexador":
Load 1 ASDF system:
#〜中略〜
("dexador")
# reload.lispの変更点を再確認、OK
? (dex:get "https://ja.wikipedia.org/wiki/Common_Lisp")
"<!DOCTYPE html>
<html class=¥"client-nojs¥" lang=¥"ja¥" dir=¥"ltr¥">
#〜中略〜
</body></html>"
200
#<HASH-TABLE :TEST EQUAL size 22/60 #x30200316897D>
#<QURI.URI.HTTP:URI-HTTPS https://ja.wikipedia.org/wiki/Common_Lisp>
#<SSL-STREAM for #<BASIC-TCP-STREAM ISO-8859-1 (SOCKET/4) #x3020030AE94D>>
?
成功したように見えます・・!
918882
2021/03/20(土) 23:37:46.40ID:2VI0Nxdp >> 917 それはよかった。
917の環境は、 "ja.wikipedia.org" が IPv6 アドレスに解決されるのにそれを使って connect すると失敗するという状態なんだろうか。知らんけど。
IPv6 で繋がらない原因は Lisp の範疇じゃないし、917自身がネットワーク設定を見るしかないと思う。
あと ccl で IPv6 を常に抑制したいというなら、 ccl の起動時読み込みファイルに同じ設定を書き込む必要があると思う。
~/.ccl-init.lisp に、以下の式:
(setf *features* (delete :ipv6 *features*))
を追記しとけば IPv6 を抑制できて暫定措置になるんじゃないの。
917の環境は、 "ja.wikipedia.org" が IPv6 アドレスに解決されるのにそれを使って connect すると失敗するという状態なんだろうか。知らんけど。
IPv6 で繋がらない原因は Lisp の範疇じゃないし、917自身がネットワーク設定を見るしかないと思う。
あと ccl で IPv6 を常に抑制したいというなら、 ccl の起動時読み込みファイルに同じ設定を書き込む必要があると思う。
~/.ccl-init.lisp に、以下の式:
(setf *features* (delete :ipv6 *features*))
を追記しとけば IPv6 を抑制できて暫定措置になるんじゃないの。
919デフォルトの名無しさん
2021/03/20(土) 23:49:08.72ID:ABymnbS3920デフォルトの名無しさん
2021/03/21(日) 00:33:41.74ID:kaM5HUhB >>918
調べてはいますがおそらくその通りだと思います
ifconfigでIPv6アドレスを持っていてIPv6パススルーも生きていることはわかったのですが
httpsに関してはIPv4しか通らないようです
DNSはIPv6を返します
問い合わせないといけないかもしれないので時間かかります
また報告しますすいません・・
調べてはいますがおそらくその通りだと思います
ifconfigでIPv6アドレスを持っていてIPv6パススルーも生きていることはわかったのですが
httpsに関してはIPv4しか通らないようです
DNSはIPv6を返します
問い合わせないといけないかもしれないので時間かかります
また報告しますすいません・・
921デフォルトの名無しさん
2021/03/21(日) 10:38:06.62ID:37bhr7Il CCL with IPV6 feature:
(openmcl-socket:resolve-address :HOST "www.wikipedia.org" :PORT 443 :SOCKET-TYPE :STREAM)
⇒ IPアドレス #<IP6-SOCKET-ADDRESS [2001:df2:e500:ed1a::1]:443>
[ 参考: usocket-0.8.3/backend/clozure.lisp line: 15〜 ]
SBCL:
(usocket:get-hosts-by-name "www.wikipedia.org")
⇒ (#(103 102 166 224) #(32 1 13 242 229 0 237 26 0 0 0 0 0 0 0 1))
⇒ (car ... ) ⇒ IPアドレス #(103 102 166 224)
[ 参考: usocket-0.8.3/backend/sbcl.lisp line: 321〜 ]
つまり
CCLでは CCL実装の resolve-address で得られるIPアドレス (この場合 ipv6) をそのまま採用する
SBCLでは usocket:get-hosts-by-name で得られるIPアドレスが複数 (ipv4, ipv6) あったら 先頭のエントリ (ipv4) を採用する
「SBCLでは大丈夫だったのに」の謎はこれで解けた
(openmcl-socket:resolve-address :HOST "www.wikipedia.org" :PORT 443 :SOCKET-TYPE :STREAM)
⇒ IPアドレス #<IP6-SOCKET-ADDRESS [2001:df2:e500:ed1a::1]:443>
[ 参考: usocket-0.8.3/backend/clozure.lisp line: 15〜 ]
SBCL:
(usocket:get-hosts-by-name "www.wikipedia.org")
⇒ (#(103 102 166 224) #(32 1 13 242 229 0 237 26 0 0 0 0 0 0 0 1))
⇒ (car ... ) ⇒ IPアドレス #(103 102 166 224)
[ 参考: usocket-0.8.3/backend/sbcl.lisp line: 321〜 ]
つまり
CCLでは CCL実装の resolve-address で得られるIPアドレス (この場合 ipv6) をそのまま採用する
SBCLでは usocket:get-hosts-by-name で得られるIPアドレスが複数 (ipv4, ipv6) あったら 先頭のエントリ (ipv4) を採用する
「SBCLでは大丈夫だったのに」の謎はこれで解けた
922デフォルトの名無しさん
2021/03/21(日) 10:45:31.91ID:Duyg5pmm 迂闊なアップデートは止めましょう、パッケージマネージャはあんまり信用しないように、ということで
俺はそのままでいいや…
俺はそのままでいいや…
923デフォルトの名無しさん
2021/03/21(日) 11:16:39.08ID:Zc1ZeEs5924デフォルトの名無しさん
2021/03/21(日) 14:51:41.93ID:kaM5HUhB ネットワーク環境についてなんですが
こちらの設定だけでは改善できないことがはっきりしましたので
問題点も明らかになっていることから、今回の質問については終了したいと思います
粘り強く対応して頂いた先輩方には感謝しております
こちらの不手際のせいで巻き込んでしまってすみませんでした
ありがとうございました
次へ進みたいと思います
こちらの設定だけでは改善できないことがはっきりしましたので
問題点も明らかになっていることから、今回の質問については終了したいと思います
粘り強く対応して頂いた先輩方には感謝しております
こちらの不手際のせいで巻き込んでしまってすみませんでした
ありがとうございました
次へ進みたいと思います
925デフォルトの名無しさん
2021/03/21(日) 15:35:24.92ID:37bhr7Il >>924 ちょっと待ってくれー
(openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
そちらでこれ↑はどういう値が返ってきますか?
こちらの環境では #<IP4-SOCKET-ADDRESS 133.152.43.29:443> つまり ipv4 で返ってくる (※)
もし ipv4 で Kill: 9 になる ( >>913 ) なら ipv6 とは別の問題も抱えてるって話になります
分かったところで何ができるよ?と思われるかもしれませんが、少し気になってました
※ そしてキー値引数 :ADDRESS-FAMILY :internet6 を追加すると ipv6 になる
wikipedia.org だとデフォールトで ipv6 ( DNS の返答順に差があるんですかね )
(openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
そちらでこれ↑はどういう値が返ってきますか?
こちらの環境では #<IP4-SOCKET-ADDRESS 133.152.43.29:443> つまり ipv4 で返ってくる (※)
もし ipv4 で Kill: 9 になる ( >>913 ) なら ipv6 とは別の問題も抱えてるって話になります
分かったところで何ができるよ?と思われるかもしれませんが、少し気になってました
※ そしてキー値引数 :ADDRESS-FAMILY :internet6 を追加すると ipv6 になる
wikipedia.org だとデフォールトで ipv6 ( DNS の返答順に差があるんですかね )
926デフォルトの名無しさん
2021/03/21(日) 15:43:10.50ID:kaM5HUhB >>925
そうでした
killed:9の問題は忘れてました
? (openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
#<IP4-SOCKET-ADDRESS 133.152.43.29:443>
/usr/lib参照の設定だとこうなりますね
そうでした
killed:9の問題は忘れてました
? (openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
#<IP4-SOCKET-ADDRESS 133.152.43.29:443>
/usr/lib参照の設定だとこうなりますね
927デフォルトの名無しさん
2021/03/21(日) 16:05:38.47ID:37bhr7Il >>926
ほんと分かったところで何もできないけど、とりあえず確認ありがとう
ほんと分かったところで何もできないけど、とりあえず確認ありがとう
928デフォルトの名無しさん
2021/03/21(日) 17:17:04.97ID:kaM5HUhB いえいえそんな
いつもありがとうございます・・
いつもありがとうございます・・
929882
2021/03/21(日) 19:09:29.26ID:rYTEFRj1 >>925-926
俺の環境でも "Killed: 9" が出る現象が再現できた。
IPv6 ソケットを開くのにあえて失敗させた後、 ファイルディスクリプタを開きまくっていると ccl が死ぬっぽい。
俺が見つけた再現手順は以下。暇なら 925 や 926 も再現できるか試してみてほしい。
1. asdf のキャッシュを消す
~/.cache/common-lisp 以下を全削除。
2. ccl を起動し、以下の順に実行
(ql:quickload "usocket")
(usocket:socket-connect "ja.wikipedia.org" 65500) ; これは connection refused になって失敗する。 :pop で abort して抜ける。
(usocket:socket-connect "nicovideo.jp" 443)
(ql:quickload "dexador") ; I/Oが重い処理ならなんでもいい
最後の ql:quickload の箇所はI/Oが多い処理ならなんでもいいようで、俺はこれで "Killed: 9" になるのが確認できた。
まだ調査中だけど、この現象は usocket か ccl のバグっぽい気がする。
もう少し調べてみて必要なら本家に報告するわ。
俺の環境でも "Killed: 9" が出る現象が再現できた。
IPv6 ソケットを開くのにあえて失敗させた後、 ファイルディスクリプタを開きまくっていると ccl が死ぬっぽい。
俺が見つけた再現手順は以下。暇なら 925 や 926 も再現できるか試してみてほしい。
1. asdf のキャッシュを消す
~/.cache/common-lisp 以下を全削除。
2. ccl を起動し、以下の順に実行
(ql:quickload "usocket")
(usocket:socket-connect "ja.wikipedia.org" 65500) ; これは connection refused になって失敗する。 :pop で abort して抜ける。
(usocket:socket-connect "nicovideo.jp" 443)
(ql:quickload "dexador") ; I/Oが重い処理ならなんでもいい
最後の ql:quickload の箇所はI/Oが多い処理ならなんでもいいようで、俺はこれで "Killed: 9" になるのが確認できた。
まだ調査中だけど、この現象は usocket か ccl のバグっぽい気がする。
もう少し調べてみて必要なら本家に報告するわ。
930925
2021/03/21(日) 19:41:51.58ID:37bhr7Il >>929 同じ手順で "Killed: 9" 再現しました
環境は
Clozure CL: Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664
OS: macOS High Sierra ver. 10.13.4
~❦:ulimit -n
256
ファイルディスプリタの(プロセス単位の?)上限は、256
少ないようには見えませんが、CCLが処理しきれる上限はもっと低いんですかねえ
環境は
Clozure CL: Version 1.12 (v1.12-39-g6c1a9458) DarwinX8664
OS: macOS High Sierra ver. 10.13.4
~❦:ulimit -n
256
ファイルディスプリタの(プロセス単位の?)上限は、256
少ないようには見えませんが、CCLが処理しきれる上限はもっと低いんですかねえ
931デフォルトの名無しさん
2021/03/21(日) 20:01:40.07ID:kaM5HUhB932882
2021/03/21(日) 21:05:00.56ID:rYTEFRj1 >>930
>>931
ありがとう。これだけ再現するってことは本当にバグを見つけたのかもね。
俺の方では、 USOCKET:SOCKET-CONNECT で接続に失敗した時の backtrace を見て、 abort して抜ける時にどこかの unwind-protect で走るコードがおかしいんじゃないかと思って眺めてみてる。
で、そういう unwind-protect があるのはこの ccl::make-tcp-socket 関数だけだった:
ttps://github.com/Clozure/ccl/blob/6c1a9458f7a5437b73ec227e989aa5b825f32fd3/library/sockets.lisp#L647-L692
上の再現手順で Connection Refused にしたとき、この関数の688行目でエラーが起きるんだが、その場合 unwind-protect の効果で692行目の処理で FD が閉じられる。一方で、この FD は663行目の処理で socket 構造体の作成にも使われていて、その socket 構造体は閉じられていない。
ここからは完全に俺の推測。
Connection Refused 後の unwind-protect で FD が閉じられた後、次の処理でたまたま同じ数字のFDが開かれ、その直後にこの放置された socket 構造体がGCに回収されるときに何か起きてるんじゃないかと思う。 IPv6 の struct sockaddr_in6 と IPv4 の struct sockaddr_in を取り違えて free() する・・的な。
まあそんな今更なバグが ccl にあるとも思えないので、全く推測の域を出ないけど。
俺も普段使いはSBCLで、CCLのソースを見るのは初めてだから時間がかかると思うけど、もう少し調べてみるわ。
>>931
ありがとう。これだけ再現するってことは本当にバグを見つけたのかもね。
俺の方では、 USOCKET:SOCKET-CONNECT で接続に失敗した時の backtrace を見て、 abort して抜ける時にどこかの unwind-protect で走るコードがおかしいんじゃないかと思って眺めてみてる。
で、そういう unwind-protect があるのはこの ccl::make-tcp-socket 関数だけだった:
ttps://github.com/Clozure/ccl/blob/6c1a9458f7a5437b73ec227e989aa5b825f32fd3/library/sockets.lisp#L647-L692
上の再現手順で Connection Refused にしたとき、この関数の688行目でエラーが起きるんだが、その場合 unwind-protect の効果で692行目の処理で FD が閉じられる。一方で、この FD は663行目の処理で socket 構造体の作成にも使われていて、その socket 構造体は閉じられていない。
ここからは完全に俺の推測。
Connection Refused 後の unwind-protect で FD が閉じられた後、次の処理でたまたま同じ数字のFDが開かれ、その直後にこの放置された socket 構造体がGCに回収されるときに何か起きてるんじゃないかと思う。 IPv6 の struct sockaddr_in6 と IPv4 の struct sockaddr_in を取り違えて free() する・・的な。
まあそんな今更なバグが ccl にあるとも思えないので、全く推測の域を出ないけど。
俺も普段使いはSBCLで、CCLのソースを見るのは初めてだから時間がかかると思うけど、もう少し調べてみるわ。
933デフォルトの名無しさん
2021/03/21(日) 22:01:07.16ID:37bhr7Il あぁこれ Killed: 9 のたびにクラッシュログが残りますね
~/Library/Logs/DiagnosticReports/dx86cl64_2021-03-21-213811_Sierra.crash
Process: dx86cl64 [58558]
... .. .
Exception Type: EXC_GUARD
Exception Codes: 0x4000000100000006, 0x542c042077498a54
Exception Subtype: GUARD_TYPE_FD, id=0x542c042077498a54, fd=6, flavor=0x00000001 (CLOSE)
... .. .
さっぱり意味は分からないけどシステムを怒らせたっぽい事は伝わってきます
禁忌に触れようとした的な?
~/Library/Logs/DiagnosticReports/dx86cl64_2021-03-21-213811_Sierra.crash
Process: dx86cl64 [58558]
... .. .
Exception Type: EXC_GUARD
Exception Codes: 0x4000000100000006, 0x542c042077498a54
Exception Subtype: GUARD_TYPE_FD, id=0x542c042077498a54, fd=6, flavor=0x00000001 (CLOSE)
... .. .
さっぱり意味は分からないけどシステムを怒らせたっぽい事は伝わってきます
禁忌に触れようとした的な?
934882
2021/03/22(月) 17:08:00.67ID:VLZSjRi0 パッチ書いてプルリク出してみた。
https://github.com/Clozure/ccl/pull/362
>>933 のいうようにクラッシュレポート見たら、俺の環境でも close で死んでた。
色々調べたけど、どうやら CCL の GC が close 済みのFDをもう一度 close しようとすると死ぬっぽい。
(ただ、close 済み FD を二回 close する簡単な C プログラム書いて実験しても、 EBADF が返るくらいで kill されたりはしないんだよね・・このあたり微妙。)
そんなわけで close 済み FD を参照する一時オブジェクトをエラー時に解放するよう unwind-protect したら直ったっぽく見えたのでPRにしてみた。
(932 では struct sockaddr_in が・・とかヌカしてたけど、さすがにこれは無かった。俺の杞憂だったわ。)
https://github.com/Clozure/ccl/pull/362
>>933 のいうようにクラッシュレポート見たら、俺の環境でも close で死んでた。
色々調べたけど、どうやら CCL の GC が close 済みのFDをもう一度 close しようとすると死ぬっぽい。
(ただ、close 済み FD を二回 close する簡単な C プログラム書いて実験しても、 EBADF が返るくらいで kill されたりはしないんだよね・・このあたり微妙。)
そんなわけで close 済み FD を参照する一時オブジェクトをエラー時に解放するよう unwind-protect したら直ったっぽく見えたのでPRにしてみた。
(932 では struct sockaddr_in が・・とかヌカしてたけど、さすがにこれは無かった。俺の杞憂だったわ。)
935デフォルトの名無しさん
2021/03/22(月) 18:59:19.52ID:1u7lgsAW936デフォルトの名無しさん
2021/03/22(月) 21:16:42.30ID:5gvxkT8z >>934 あなたは偉い!
全く別件ですが詳しい方々に質問です
CCL で簡単な cocoa アプリを作ってみよう思い (require :cocoa) を評価すると Hemlock editor が立ち上がります
そのためのコンパイルとロードも毎回走ります
欲しいのは ns:ns-window とかなのに不要なエディタを除外したアプリは作れないのでしょうか?
全く別件ですが詳しい方々に質問です
CCL で簡単な cocoa アプリを作ってみよう思い (require :cocoa) を評価すると Hemlock editor が立ち上がります
そのためのコンパイルとロードも毎回走ります
欲しいのは ns:ns-window とかなのに不要なエディタを除外したアプリは作れないのでしょうか?
937デフォルトの名無しさん
2021/03/22(月) 23:32:09.69ID:5gvxkT8z Hemlock editor てのは Clozure CL64.app を立ち上げると出てくるのと似たようなもんです、というか違いが分かりません
そっちの場合は 初めから (require :cocoa) された状態になってます
慣れの問題かもしれませんが、入力補完もhistoryも効かないこのエディタは使いづらいです
快適な Emacs+slime で作業してるのに (require :cocoa) で余計なのが立ち上がる、なんなんだコレはと思ってしまいます
そっちの場合は 初めから (require :cocoa) された状態になってます
慣れの問題かもしれませんが、入力補完もhistoryも効かないこのエディタは使いづらいです
快適な Emacs+slime で作業してるのに (require :cocoa) で余計なのが立ち上がる、なんなんだコレはと思ってしまいます
938デフォルトの名無しさん
2021/03/23(火) 06:52:29.03ID:p/UYSc/L あのエディタは必要なのか必要でないのかよくわからないんですよね
examples/coco/ui-elements/howto.html とかを見ると
(in-package :ccl)
(setf my-window (#/alloc (@class ns-window)))
window生成できるってことなってるんですがエラーになるおかげで悩みました
これ(require “cocoa”)をしておけば問題なく生成できますね・・
ただ同ページの
(ns:with-ns-rect (r 100 100 400 300)
(#/initWithContentRect:styleMask:backing:defer:
my-window
r
(logior #$NSTitledWindowMask
#$NSClosableWindowMask
#$NSMiniaturizableWindowMask
#$NSResizableWindowMask)
#$NSBackingStoreBuffered
#$NO))
で初期化して表示できるとなってますがこちらでは動かないんですよね
色々とわかってないことが多いので地道に調べてます・・
examples/coco/ui-elements/howto.html とかを見ると
(in-package :ccl)
(setf my-window (#/alloc (@class ns-window)))
window生成できるってことなってるんですがエラーになるおかげで悩みました
これ(require “cocoa”)をしておけば問題なく生成できますね・・
ただ同ページの
(ns:with-ns-rect (r 100 100 400 300)
(#/initWithContentRect:styleMask:backing:defer:
my-window
r
(logior #$NSTitledWindowMask
#$NSClosableWindowMask
#$NSMiniaturizableWindowMask
#$NSResizableWindowMask)
#$NSBackingStoreBuffered
#$NO))
で初期化して表示できるとなってますがこちらでは動かないんですよね
色々とわかってないことが多いので地道に調べてます・・
939936
2021/03/24(水) 14:30:11.89ID:aesCgSqt あれから試行錯誤してみましたが
https://trac.clozure.com/ccl/wiki/GradientWindow
例えばここのサンプルコードを
(require :objc-support)
↑と↓で挟めば
(ql:quickload :trivial-main-thread)
(defun main ()
(trivial-main-thread:with-body-in-main-thread ()
(show-gradient-window)
(#/run (#/sharedApplication ns:ns-application))))
(main) でウィンドウが出ます
サイト脚注の gui:execute-in-gui はcocoaパッケージで提供されるのでここでは使えません
examples/cocoa/ui-elements/HOWTO.html の例も
(%make-nsstring "Hello!") → #@"Hello!"
(@SELECTOR "greet:") → (objc:@SELECTOR "greet:")
のように書き換えてやると動きます
https://trac.clozure.com/ccl/wiki/GradientWindow
例えばここのサンプルコードを
(require :objc-support)
↑と↓で挟めば
(ql:quickload :trivial-main-thread)
(defun main ()
(trivial-main-thread:with-body-in-main-thread ()
(show-gradient-window)
(#/run (#/sharedApplication ns:ns-application))))
(main) でウィンドウが出ます
サイト脚注の gui:execute-in-gui はcocoaパッケージで提供されるのでここでは使えません
examples/cocoa/ui-elements/HOWTO.html の例も
(%make-nsstring "Hello!") → #@"Hello!"
(@SELECTOR "greet:") → (objc:@SELECTOR "greet:")
のように書き換えてやると動きます
940デフォルトの名無しさん
2021/03/24(水) 15:23:03.24ID:aesCgSqt それと (ccl:save-application "foo.image") とやれば現状のバイナリイメージが保存されます
dx86cl64 -n -b -Q -I foo.image -e "(main)"
のようにして実行できます
サンプルでは終了処理が省略されてるのでウィンドウを閉じても終わりません
例えば killall -9 dx86cl64 で始末してやる必要があります
ちなみに (require :cocoa) の状態でイメージ保存をすると何故か 0バイトの空ファイルができます
あと :cocoa では ccl::build-application を使ってアプリケーションバンドルが作れるという話になってるのですが
これもちょっと分かりませんでした
ガワ(〜.app)は出来ても実行できない、エラーを見るとイメージが見つからない、
じゃあ手動で作ればいいのか? 保存できないじゃん... という循環です
dx86cl64 -n -b -Q -I foo.image -e "(main)"
のようにして実行できます
サンプルでは終了処理が省略されてるのでウィンドウを閉じても終わりません
例えば killall -9 dx86cl64 で始末してやる必要があります
ちなみに (require :cocoa) の状態でイメージ保存をすると何故か 0バイトの空ファイルができます
あと :cocoa では ccl::build-application を使ってアプリケーションバンドルが作れるという話になってるのですが
これもちょっと分かりませんでした
ガワ(〜.app)は出来ても実行できない、エラーを見るとイメージが見つからない、
じゃあ手動で作ればいいのか? 保存できないじゃん... という循環です
941デフォルトの名無しさん
2021/03/24(水) 19:24:39.27ID:yxGjMjcv CCLのメーリングリストでやったら?
もし有益な情報だったらここに書かれててもCCLユーザーは目にすることはないし
逆にここでやられてもCCLでapp作るっての長々やられても正直うざい
もし有益な情報だったらここに書かれててもCCLユーザーは目にすることはないし
逆にここでやられてもCCLでapp作るっての長々やられても正直うざい
942デフォルトの名無しさん
2021/03/24(水) 20:15:36.43ID:pUd7W5mz いいじゃない、過疎スレなんだし
943デフォルトの名無しさん
2021/03/25(木) 18:41:24.49ID:vJV70gDt lispを会社で使ってる人は何に使ってるの?
944デフォルトの名無しさん
2021/03/25(木) 22:47:02.90ID:yPj3FOep Clojureが一番多いだろうけど、結局Web関連が大半だろうな
945デフォルトの名無しさん
2021/03/27(土) 11:00:58.43ID:Jp3H832r 会社の仕事で使わせようとするとこは地雷っぽく感じる
Lisperが集まった少人数ベンチャーでもなければ、普通は採用言語とはならんて
Lisperが集まった少人数ベンチャーでもなければ、普通は採用言語とはならんて
946デフォルトの名無しさん
2021/03/27(土) 20:32:02.20ID:uSYmOJju 速さが必要なとこはC++UIはC#
設定とか外部ファイルはjson
設定とか外部ファイルはjson
947デフォルトの名無しさん
2021/04/20(火) 08:52:04.97ID:gd1FBcQ1 Steele御大がカバーに推薦文書いてるからってclでHacker's Delight一通りなぞったけど
dpb, deposit-field, log~, boole-~,bit-vector...
clの無駄に細かく柔軟なbyte/bit関数がめっちゃ生きるなこれ
byte-specのおかげで32bit想定で16進定数まみれのc(っぽい)サンプルコードがキレイになる
変なビット幅使ったら性能は察しだけども
4bit整数のboole-定数も真理値表とcltl2、(hsによれば処理系定義だけど)処理系毎に思想が見えて面白い
dpb, deposit-field, log~, boole-~,bit-vector...
clの無駄に細かく柔軟なbyte/bit関数がめっちゃ生きるなこれ
byte-specのおかげで32bit想定で16進定数まみれのc(っぽい)サンプルコードがキレイになる
変なビット幅使ったら性能は察しだけども
4bit整数のboole-定数も真理値表とcltl2、(hsによれば処理系定義だけど)処理系毎に思想が見えて面白い
948デフォルトの名無しさん
2021/04/20(火) 08:53:47.98ID:gd1FBcQ1 byteはsize, pos, stepの3タプルだったら、もっと良かったかもな
949デフォルトの名無しさん
2021/05/22(土) 14:57:49.72ID:AMGDOUSM lispで構造体の配列はどの様に宣言するのですか。
教えてください。
教えてください。
950デフォルトの名無しさん
2021/05/22(土) 16:58:24.32ID:ihqr331W 構造体の型を :element-type に指定して make-array するとか。
standard-object の配列を作るなら
(make-array 42 :element-type 'standard-object)
standard-object の配列を作るなら
(make-array 42 :element-type 'standard-object)
951デフォルトの名無しさん
2021/05/23(日) 05:05:37.98ID:wE2/zz8j nconcとかの最初のnってなんの意味?
破壊系は大抵nがついてるようだけど
破壊系は大抵nがついてるようだけど
952デフォルトの名無しさん
2021/05/23(日) 14:54:18.11ID:jMJ3NfPq 実践Common Lispにはnon-consingを意味すると書いてあるな
953デフォルトの名無しさん
2021/05/28(金) 00:46:31.60ID:EJmsk1LE クロージャー?判ってなさそうなミスして困った
https://pastebin.com/MmYWsxce
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 2) (W . 0)
(B . 1) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 1)
(B . 0) (R . 0) (G . 0) (Y . 2) (P . 0) (W . 0)
(B . 1) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 1)
NIL
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 4) (W . 0)
(B . 2) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 2)
(B . 0) (R . 0) (G . 0) (Y . 4) (P . 0) (W . 0)
(B . 2) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 2)
NIL
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 6) (W . 0)
(B . 3) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 3)
(B . 0) (R . 0) (G . 0) (Y . 6) (P . 0) (W . 0)
(B . 3) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 3)
NIL
関数呼ぶ時に counters が初期化されずに値をキープするので
呼ぶ度に増えてしまう
どう定義すればリセットされるのだろうか?
https://pastebin.com/MmYWsxce
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 2) (W . 0)
(B . 1) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 1)
(B . 0) (R . 0) (G . 0) (Y . 2) (P . 0) (W . 0)
(B . 1) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 1)
NIL
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 4) (W . 0)
(B . 2) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 2)
(B . 0) (R . 0) (G . 0) (Y . 4) (P . 0) (W . 0)
(B . 2) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 2)
NIL
CL-USER> (answer-status)
(B . 0) (R . 0) (G . 0) (Y . 0) (P . 6) (W . 0)
(B . 3) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 3)
(B . 0) (R . 0) (G . 0) (Y . 6) (P . 0) (W . 0)
(B . 3) (R . 0) (G . 0) (Y . 0) (P . 0) (W . 3)
NIL
関数呼ぶ時に counters が初期化されずに値をキープするので
呼ぶ度に増えてしまう
どう定義すればリセットされるのだろうか?
954デフォルトの名無しさん
2021/05/28(金) 02:28:07.56ID:yF2ZDltE なんでcounterをdefparameterで定義してるの?
955デフォルトの名無しさん
2021/05/28(金) 03:05:24.01ID:mAlT95oI copy-tree 使うとか
https://pastebin.com/69r3fbZH
https://pastebin.com/69r3fbZH
956デフォルトの名無しさん
2021/05/28(金) 08:27:58.85ID:EJmsk1LE957デフォルトの名無しさん
2021/05/28(金) 10:06:56.31ID:9zUWEJUi958デフォルトの名無しさん
2021/05/28(金) 13:02:59.14ID:3GRY8xg9 リテラルオブジェクトを破壊的に変更した結果が未定義だからだね
959デフォルトの名無しさん
2021/05/28(金) 20:43:19.98ID:Kys4wuAq assoc cdr nth越しにfるアクセサ志向プログラミングが気になる
いや悪いと思わんよsetfパワーはclの売りだし
ただなかなか見たことないので感心?した
いや悪いと思わんよsetfパワーはclの売りだし
ただなかなか見たことないので感心?した
960デフォルトの名無しさん
2021/05/28(金) 22:27:22.42ID:EJmsk1LE961デフォルトの名無しさん
2021/05/28(金) 23:07:39.31ID:J0jB9cZZ グラフ探索でモノを見つけたら帰りがけに空リストへcar/cdrをpushしていくのはやったことあるな
(#'car #'car #'cdr ...)で表現したアドレスと値が帰ってくる(以下#'等省略)
値を処理したら(compose '(car car cdr...))でアクセス関数を生成してsetfで更新
なんで俺はそのノードへの参照を直接返さず無駄にリスト返したのか、と書いてて疑問に思ったけど思い出したわ
そのノードの周りをn階層刈ったり、途中の階層から相対アクセスしたかったんだ
(compose '(cons curried-butlast-n '(car car cdr ...)))
的な感じで
何れにせよcar/cdrがsetfableな恩恵だね
(#'car #'car #'cdr ...)で表現したアドレスと値が帰ってくる(以下#'等省略)
値を処理したら(compose '(car car cdr...))でアクセス関数を生成してsetfで更新
なんで俺はそのノードへの参照を直接返さず無駄にリスト返したのか、と書いてて疑問に思ったけど思い出したわ
そのノードの周りをn階層刈ったり、途中の階層から相対アクセスしたかったんだ
(compose '(cons curried-butlast-n '(car car cdr ...)))
的な感じで
何れにせよcar/cdrがsetfableな恩恵だね
962デフォルトの名無しさん
2021/05/28(金) 23:14:25.26ID:J0jB9cZZ リードした時点でcadaddadadaaaar自動生成みたいなしょうもないマクロをpaul grahamだったかで見た事あるけど、もしかしてこれ使えるかも?
a/dを文字列ででも返して、それを関数として使いたい時だけcとrで挟んでinternする感じで
a/dを文字列ででも返して、それを関数として使いたい時だけcとrで挟んでinternする感じで
963デフォルトの名無しさん
2021/05/28(金) 23:53:54.41ID:Kys4wuAq 効率は悪そうだけどとてもlispらしい
placeだけダイナミック変数に確保したとしても、誰から指されてるか(親)は経路を何らかの方法で保存してないと原理的に辿れない
(複数から指されている可能性もあるので)
順にスタック片付けずに一気に脱出したいところだけど、帰りにpushする為に必要なんだな
逆に次にアクセスするノードへのアクセサをpushする方法が考えられるけど、これなら見つかり次第アキュムレータ末尾再帰かthrow 'top/catchで帰れる
外れノードから戻る時にアクセサをpopするコストも負うけど…
とりあえず効率は無視して、外れノードから一段降りる時にアクセサをpopするのではなく、returnを積んでしまえば、探索のログとしてデバッグに役立ちそう
car cdrに加え、returnまで合成した関数がちゃんとsetfableかまではちょっと自信がない
placeだけダイナミック変数に確保したとしても、誰から指されてるか(親)は経路を何らかの方法で保存してないと原理的に辿れない
(複数から指されている可能性もあるので)
順にスタック片付けずに一気に脱出したいところだけど、帰りにpushする為に必要なんだな
逆に次にアクセスするノードへのアクセサをpushする方法が考えられるけど、これなら見つかり次第アキュムレータ末尾再帰かthrow 'top/catchで帰れる
外れノードから戻る時にアクセサをpopするコストも負うけど…
とりあえず効率は無視して、外れノードから一段降りる時にアクセサをpopするのではなく、returnを積んでしまえば、探索のログとしてデバッグに役立ちそう
car cdrに加え、returnまで合成した関数がちゃんとsetfableかまではちょっと自信がない
964デフォルトの名無しさん
2021/05/28(金) 23:54:39.92ID:Ti7fgoex 毎回二連投するやつ
965デフォルトの名無しさん
2021/05/29(土) 13:06:29.81ID:/6seeUxq リスト上でreturnと直前の呼び出しを対消滅させて最適化するイメージは湧くが意外と面倒くさそう
returnが連続するケースにカウンタが要る
括弧のパースでよくやるロジックだけど
returnが連続するケースにカウンタが要る
括弧のパースでよくやるロジックだけど
966デフォルトの名無しさん
2021/06/17(木) 12:59:58.49ID:WewK95Ed CommonLispで小さなCLIプログラムを書く
Writing Small CLI Programs in Common Lisp / Steve Losh
https://stevelosh.com/blog/2021/03/small-common-lisp-cli-programs/#s1-requirements
Writing Small CLI Programs in Common Lisp / Steve Losh
https://stevelosh.com/blog/2021/03/small-common-lisp-cli-programs/#s1-requirements
967デフォルトの名無しさん
2021/06/17(木) 21:38:50.24ID:PVkxN2pW >>966
CLISPさいつよ
CLISPさいつよ
968デフォルトの名無しさん
2021/06/22(火) 14:58:15.67ID:9PZ+AdPA 「Common Lisp」って、市販の書籍を読んでも歴史や文法等の事は書いてあっても、
REPLで試せるだけで、コンパイルして実行可能ファイルを作る方法が不明だな。
ネットを調べてもコンパイルして実行ファイルを作成する情報が見つからない。
運良く見つかっても、商用系のコンパイラを使った場合の話だったりする事が多々有る。
REPLで試せるだけで、コンパイルして実行可能ファイルを作る方法が不明だな。
ネットを調べてもコンパイルして実行ファイルを作成する情報が見つからない。
運良く見つかっても、商用系のコンパイラを使った場合の話だったりする事が多々有る。
969デフォルトの名無しさん
2021/06/22(火) 15:10:53.11ID:YfWe7YWP SBCLって有料七日
https://common-lisp.net/project/ecl/
https://stackoverflow.com/questions/11036070/lisp-binary-size
https://stackoverflow.com/questions/913671/are-there-lisp-native-code-compilers
https://stackoverflow.com/questions/14171849/compiling-common-lisp-to-an-executable
https://qiita.com/kedama17/items/6cdbb0e163aafcf8d339
https://takeokunn.xyz/blog/post/common-lisp-generate-executable-file
https://lispcookbook.github.io/cl-cookbook/scripting.html
https://ja.stackoverflow.com/questions/22493
https://common-lisp.net/project/ecl/
https://stackoverflow.com/questions/11036070/lisp-binary-size
https://stackoverflow.com/questions/913671/are-there-lisp-native-code-compilers
https://stackoverflow.com/questions/14171849/compiling-common-lisp-to-an-executable
https://qiita.com/kedama17/items/6cdbb0e163aafcf8d339
https://takeokunn.xyz/blog/post/common-lisp-generate-executable-file
https://lispcookbook.github.io/cl-cookbook/scripting.html
https://ja.stackoverflow.com/questions/22493
970デフォルトの名無しさん
2021/06/22(火) 15:18:09.43ID:HykST2y2 これが間違ったことを書いてツッコミを貰う式問題解決法ですか
971デフォルトの名無しさん
2021/06/22(火) 15:39:51.87ID:pmPJw99A 処理系のマニュアルを見なさい
972デフォルトの名無しさん
2021/06/22(火) 15:45:43.42ID:pmPJw99A 規格で決まってないし、そもそもバイナリに固めて配布する需要がそんなに無い
973デフォルトの名無しさん
2021/06/22(火) 15:53:42.26ID:9PZ+AdPA974デフォルトの名無しさん
2021/06/22(火) 16:00:31.34ID:9PZ+AdPA 解っている人にしか理解不可能な会話をされたら、
新参者はちんぷんかんぷんですね。
新参者はちんぷんかんぷんですね。
975デフォルトの名無しさん
2021/06/22(火) 16:58:54.16ID:r0WButOj SBCLではデフォルトで固めて実行ファイルを作れるが、サイズが最低でも40MBほどになる
SBCLビルド持にオプションを追加すると、圧縮した実行ファイルを作れる
それだと10MB程度になるから、まぁ現実的なサイズかなと
ちなみに圧縮されてても一瞬で起動するからデメリットは全く無い
SBCLビルド持にオプションを追加すると、圧縮した実行ファイルを作れる
それだと10MB程度になるから、まぁ現実的なサイズかなと
ちなみに圧縮されてても一瞬で起動するからデメリットは全く無い
976デフォルトの名無しさん
2021/06/22(火) 17:01:38.90ID:pmPJw99A save-lisp-and-dieはsbcl系だろうか、sb-ext:とかそんなパッケージプレフィックス付いてない?
eclだとsaveinitmemだとかその辺はてんでバラバラ
自分の環境で素早くロードして実行したいのならそれでベストだと思うよ、メモリをダンプしたのをそのまま読み込むだけだから
ただし全部入りだから、ファイルサイズに気を付けてね
eclだとsaveinitmemだとかその辺はてんでバラバラ
自分の環境で素早くロードして実行したいのならそれでベストだと思うよ、メモリをダンプしたのをそのまま読み込むだけだから
ただし全部入りだから、ファイルサイズに気を付けてね
977デフォルトの名無しさん
2021/06/22(火) 22:34:00.44ID:9PZ+AdPA978デフォルトの名無しさん
2021/06/22(火) 22:44:48.17ID:9PZ+AdPA979デフォルトの名無しさん
2021/06/23(水) 00:56:32.49ID:fcCuTY0O Common Lisperの7割以上が使ってると思われるSBCLの実行ファイルの作成に関して、具体的に書いた俺のレスは無視かよw
まともに聞く気が無いならもう来んなよ
まともに聞く気が無いならもう来んなよ
980デフォルトの名無しさん
2021/06/23(水) 01:02:46.63ID:p7QOUBen 老婆心だけど、プログラム事にコアイメージを量産するんじゃないぞ(違ったらごめん)
ライブラリや書いたコードの最適化コンパイル、実行時でなくてよい計算を済ませて、スクリプトを食わせる
ライブラリや書いたコードの最適化コンパイル、実行時でなくてよい計算を済ませて、スクリプトを食わせる
981デフォルトの名無しさん
2021/06/23(水) 01:57:21.85ID:p7QOUBen sbclなら常に関数をコンパイルしながら走るので、動的に関数生成するそこそこ規模ならお釣りが来るよ
実行時入力を与えて走らせればイメージが最適化されるので、そこをまたダンプ
熟成と呼んでる
パッケージマネージャ用に主なアーキテクチャ向けビルド作ってるけど、デバッガやrepl削るとffi関連のアップデートで泣く
実行時入力を与えて走らせればイメージが最適化されるので、そこをまたダンプ
熟成と呼んでる
パッケージマネージャ用に主なアーキテクチャ向けビルド作ってるけど、デバッガやrepl削るとffi関連のアップデートで泣く
982デフォルトの名無しさん
2021/06/23(水) 02:01:06.89ID:p7QOUBen cl界隈はソース配布で自動ビルドがなかなか混沌としてるからな
983デフォルトの名無しさん
2021/06/23(水) 02:38:16.31ID:bhqsYps4 こんな時間になってしまった。おやすみなさい。
984デフォルトの名無しさん
2021/06/23(水) 04:19:32.99ID:GGzsHju7 このスレ7年たつらしいけどLisp Schemeスレ一本に合流にして単独スレいらんのではないか
「いいものの本質は、いかなる時代においても変わらない」byパワーズのパワーズってなんなん?
「いいものの本質は、いかなる時代においても変わらない」byパワーズのパワーズってなんなん?
985デフォルトの名無しさん
2021/06/23(水) 13:25:52.20ID:6jEPjWCz emacs lisp の方が実用化には成功しているのかも知れないぬ
986デフォルトの名無しさん
2021/06/23(水) 19:50:01.92ID:bhqsYps4 次スレはまだかな、
987デフォルトの名無しさん
2021/06/23(水) 20:30:38.58ID:bhqsYps4 SBCL等のCommon-Lispでプログラムを作る際に、
ファイル若しくは画面にデバッグログを出力出来るライブラリの様なは無いのかな。
ググったり、Githubの中を探してたら、Log4CLってのを見つた。
ファイル若しくは画面にデバッグログを出力出来るライブラリの様なは無いのかな。
ググったり、Githubの中を探してたら、Log4CLってのを見つた。
988デフォルトの名無しさん
2021/06/23(水) 20:45:03.00ID:bhqsYps4 いま、検索したら日本語で詳しく紹介してるブログを見つけました。
他にもロギングライブラリらしきものが存在するらしい。
他にもロギングライブラリらしきものが存在するらしい。
989デフォルトの名無しさん
2021/06/26(土) 19:10:53.28ID:SGwHfoMZ transcriptって無かったっけ
そういうのじゃだめか
そういうのじゃだめか
990デフォルトの名無しさん
2021/06/26(土) 20:58:40.91ID:3dvp5buX991デフォルトの名無しさん
2021/06/27(日) 13:56:15.17ID:VKjGOwn5992デフォルトの名無しさん
2021/06/27(日) 16:36:57.14ID:KSONo++L ロガーとslimeが連携でもしてくれるのなら有用だと思うがそうじゃないならたいして使えるものではないな
コンパイラの警告,trace,breakはロガーライブラリを導入しなくても標準で使えるし,slimeと連携もする
コンパイラの警告,trace,breakはロガーライブラリを導入しなくても標準で使えるし,slimeと連携もする
993デフォルトの名無しさん
2021/06/29(火) 12:36:19.72ID:aO3q0Gho994デフォルトの名無しさん
2021/06/29(火) 18:57:39.59ID:LZLMU7Fi >>987
単に*debug/trace/error/standard...-output*へ自前のストリームをsetfすると画面への出力が食われるのかな?自前のreplはどう?色付けたり楽しいよ
(loop (funcall print-tee (funcall (eval (funcall read))))
print-teeで好きな標準ストリームをread-lineし、好きなところに書き込む
試してないので雰囲気だけ…(処理系のreplは裏で色々やってるので、それを元に改造するべき
単に*debug/trace/error/standard...-output*へ自前のストリームをsetfすると画面への出力が食われるのかな?自前のreplはどう?色付けたり楽しいよ
(loop (funcall print-tee (funcall (eval (funcall read))))
print-teeで好きな標準ストリームをread-lineし、好きなところに書き込む
試してないので雰囲気だけ…(処理系のreplは裏で色々やってるので、それを元に改造するべき
995デフォルトの名無しさん
2021/06/29(火) 22:07:45.60ID:vAeooDjH >>993
乙
乙
996デフォルトの名無しさん
2021/06/30(水) 18:24:48.68ID:PhKPzjXz 一時期SBCL入れて入門していました。
取り敢えずチュートリアルサイトを途中までこなして、ふと(BASICで言う)ステートメントをダイレクト実行しかしていない事に気が付く。
しかもlistとかのダイレクトコマンド専門命令の説明がない。
ググって見付けたサイト覗いても、その辺りの説明がない。
いくら生まれが古くても、ここまで生き残った言語なら運用に不足がある訳ないのだけれど・・・。
取り敢えずチュートリアルサイトを途中までこなして、ふと(BASICで言う)ステートメントをダイレクト実行しかしていない事に気が付く。
しかもlistとかのダイレクトコマンド専門命令の説明がない。
ググって見付けたサイト覗いても、その辺りの説明がない。
いくら生まれが古くても、ここまで生き残った言語なら運用に不足がある訳ないのだけれど・・・。
997デフォルトの名無しさん
2021/06/30(水) 19:57:21.11ID:F+OSm5Af >>996
> ステートメントをダイレクト実行しかしていない
これはreplでしかつかってないということなんだろうけど、
> しかもlistとかのダイレクトコマンド専門命令
これはなんのことなんだろう。
> ステートメントをダイレクト実行しかしていない
これはreplでしかつかってないということなんだろうけど、
> しかもlistとかのダイレクトコマンド専門命令
これはなんのことなんだろう。
998デフォルトの名無しさん
2021/06/30(水) 22:58:32.99ID:uA4oH22P BASICがアマチュアプログラミングの標準だったのはかれこれ40年前ですよ・・・
LISPが古いのとは別次元で時代錯誤・・・
LISPが古いのとは別次元で時代錯誤・・・
999デフォルトの名無しさん
2021/07/01(木) 10:41:54.54ID:8VUowwb01000デフォルトの名無しさん
2021/07/01(木) 10:42:20.83ID:8VUowwb010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2474日 11時間 53分 0秒
新しいスレッドを立ててください。
life time: 2474日 11時間 53分 0秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★7
- トランプ、G7に代わるcore 5を発表 [805596214]
- ハロワって客層悪すぎるだろwwwwwwwwwwwww
- オナニーするか😔
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- VIPスクリプトだらけでワロタwwwwwwwww
