■ このスレッドは過去ログ倉庫に格納されています
【入門】Common Lisp その11【質問よろず】
- 1 :デフォルトの名無しさん:2014/09/21(日) 22:49:21.73 ID:FJokPHUt.net
- 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/
- 2 :デフォルトの名無しさん:2014/09/23(火) 21:47:56.66 ID:NoTzw7Td.net
- 保守っとけ
- 3 :デフォルトの名無しさん:2014/09/24(水) 05:53:21.05 ID:jMNIys3U.net
- 僕のチンポの保守もして欲しいです
- 4 :デフォルトの名無しさん:2014/09/27(土) 22:11:12.38 ID:MwPKYdSn.net
- CommonLispってもういらない子なの?
- 5 :デフォルトの名無しさん:2014/09/27(土) 22:16:56.38 ID:XRggRDkd.net
- 少なくとも俺はいる
- 6 :デフォルトの名無しさん:2014/09/28(日) 01:52:26.39 ID:ukluat85.net
- もういらない子だと言われ続けて数十年
- 7 :デフォルトの名無しさん:2014/09/28(日) 10:02:46.51 ID:3fm9b2hk.net
- CommonLispは無くなっても困らないけどs式使う言語が否定される訳じゃ無いからなー
GUIとかI/Oもちっと近代的に再定義できないもんかの>>CommonLisp
- 8 :デフォルトの名無しさん:2014/09/28(日) 11:36:29.40 ID:VPEqHLDK.net
- なんでClojureはdoted pairなくしたんやろ
Symolic expressionはlinked cellが実体やないのか?
おかげでcar,cdrもないらしいやないか
それでもリスプの仲間かい!
レイプの間違いやないか?
エロいのうClojure
- 9 :デフォルトの名無しさん:2014/09/28(日) 11:50:37.01 ID:VPEqHLDK.net
- 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))
わし、勉強したで
どや!
- 10 :デフォルトの名無しさん:2014/09/28(日) 12:03:58.38 ID:3fm9b2hk.net
- >>8
Clojureはcons cellのあり方を変えてもLisp族であれると明確にしたんじゃないの?
実際Lispのdot pairってClojureでvector で2値持つのと何所が違うの?
- 11 :デフォルトの名無しさん:2014/09/28(日) 12:36:35.15 ID:iDFl5dY4.net
- >>10
ワシにきくな!
- 12 :デフォルトの名無しさん:2014/09/28(日) 12:37:33.56 ID:3fm9b2hk.net
- >>11
えー?
なんでわし怒鳴られてんのん?
- 13 :デフォルトの名無しさん:2014/09/28(日) 12:50:00.26 ID:iDFl5dY4.net
- >>12
エヘヘ
- 14 :デフォルトの名無しさん:2014/09/29(月) 15:39:11.02 ID:EGBsxWNV.net
- lispworks欲しい
実際emacs slime sbclとどれくらい違うんだろ
- 15 :デフォルトの名無しさん:2014/09/29(月) 15:46:20.10 ID:3Y1KoBbC.net
- >>14
GUI使わないならLispWorksもEmacs+Slimeですよ。
ちなみにGUIつかうならフランツ買うべき
- 16 :デフォルトの名無しさん:2014/09/29(月) 16:43:54.70 ID:GUILLi5F.net
- > GUI使わないならLispWorksもEmacs+Slimeですよ。
GUI使うよ
> ちなみにGUIつかうならフランツ買うべき
なんで?
- 17 :デフォルトの名無しさん:2014/09/29(月) 17:11:50.09 ID:3Y1KoBbC.net
- >>16
とりあえずGUIで日本語使わないならLispWorksでも大丈夫だけど、GUI使うときに付属のエディタが多バイト文字対応してない>>LispWorks
Franzはそのあたり問題ないのとGUIのユーティリティーが凄い良くできてる。
でもお金無いのでFranzは評価版だけしか使ってないけどな!
エディタさえなんとかなるならLispWorks好きなんだけどな!
- 18 :デフォルトの名無しさん:2014/09/29(月) 17:22:08.25 ID:hqUDBNsI.net
- lispworks6からUTF-8で表示で崩れもなく表示もできるし入力もできるよ.
common graphicsよりcapiの方が評判良いと思うけど.
lispworks7からjvmと連携するらしいよ.
- 19 :デフォルトの名無しさん:2014/09/29(月) 17:22:59.09 ID:GUILLi5F.net
- やっぱり日本語がネックか
とりあえずfreeのacl使ってみる
- 20 :デフォルトの名無しさん:2014/09/29(月) 17:23:29.98 ID:GUILLi5F.net
- lispworks買うことも視野に入れてみる
- 21 :デフォルトの名無しさん:2014/09/29(月) 18:42:06.20 ID:3Y1KoBbC.net
- >>18
マジか!
マジならアップグレードするか
#という事を続けてAllegro購入とかわらんくらい突っ込んでるのがなっとくいかねー
- 22 :デフォルトの名無しさん:2014/09/29(月) 18:43:04.57 ID:3Y1KoBbC.net
- >>18
jvm連携するくらいならClojreのIDEになってほしい orz
- 23 :デフォルトの名無しさん:2014/09/30(火) 19:30:43.62 ID:ReFtgmj2.net
- Schemeに比べてCommon Lispの利点て何?
- 24 :デフォルトの名無しさん:2014/09/30(火) 20:23:52.47 ID:VWdpfwoz.net
- ベタベタな手続き型プログラミングがいとも簡単にできるところじゃね?
- 25 :デフォルトの名無しさん:2014/09/30(火) 20:30:05.69 ID:lfWI1YhR.net
- 俺でも使えるコモンリスプってかあ
- 26 :デフォルトの名無しさん:2014/09/30(火) 20:50:58.25 ID:Q/T7bifx.net
- 偽と空リストが分かれてないとかnilのcar,cdrはnilとかそういうところは地味だけど
マクロ定義とかでリスト操作するときに便利
- 27 :デフォルトの名無しさん:2014/09/30(火) 20:53:38.82 ID:Q/T7bifx.net
- あとバリバリに最適化してC並の性能に出来るところも気持ちいい
- 28 :デフォルトの名無しさん:2014/10/01(水) 01:31:35.21 ID:ewrKIyW0.net
- なるほど
名前空間が分かれているところは利点?
- 29 :デフォルトの名無しさん:2014/10/01(水) 14:35:45.12 ID:aT3WVKIZ.net
- Common LispがLisp-2であることは、俺にとっては実用上便利だが、
そうは思わない人たちもたくさんいるだろう。
- 30 :デフォルトの名無しさん:2014/10/01(水) 14:38:33.54 ID:pim40rLx.net
- let over lambdaではちょくちょくageてた
- 31 :デフォルトの名無しさん:2014/10/02(木) 19:33:45.19 ID:Qypu3DYD.net
- common lispって柔軟だけどかゆい所に手が届かない所が多いね
大抵はalexandriaとかkmrclとかcl-ppcreとかsplit-sequenceとか使えばなんとかなるけど
ライブラリが散らばるのが気になる
alexandriaとかkmrclをベースに自分だけが使う一つの巨大なライブラリを作って足りない部分を追加していく方がいいのかな
- 32 :デフォルトの名無しさん:2014/10/06(月) 01:52:15.38 ID:6XAAReg7.net
- 名前空間みたいに、分けられる概念は分けるのが正義。Scheme はたぶん間違っている。
その意味では CL も副作用を分けなかったのは失敗だった。
- 33 :デフォルトの名無しさん:2014/10/06(月) 02:40:17.27 ID:wbFS47kT.net
- 目が腐った
- 34 :デフォルトの名無しさん:2014/10/07(火) 00:42:24.02 ID:1sqcCb/K.net
- プログラム書いるとオレオレマクロとかオレオレ関数ができてくると思うんだけど、みんなこれどこに置いてるの
- 35 :デフォルトの名無しさん:2014/10/07(火) 00:45:00.37 ID:nz5dcB15.net
- sbclでコンパイルに数秒かかってて
(incf v)
(incf v)
...
をn回繰り返す式を
を(incf v n)にしたらコンパイルが一瞬で終わるようになった
最適化すごい
- 36 :デフォルトの名無しさん:2014/10/07(火) 00:46:27.10 ID:nz5dcB15.net
- 最初は今書いてるプログラムソースと同じディレクトリに置いて間を見計らって
~/.sbcl/の中に置いて起動時にloadするようにしてる
- 37 :デフォルトの名無しさん:2014/10/07(火) 02:44:00.62 ID:OarL+A4W.net
- >>34
1. オレオレだと思っていてもalexandriaの中を探すと大抵のものはある.それを使う.
2. なければ,オレオレライブラリでもasdfで読めるようにしておく.quickproject使えば手間もかからん.
初期化ファイルで読み込ませるのはbad practice.
- 38 :デフォルトの名無しさん:2014/10/07(火) 15:39:11.06 ID:QLizEra8.net
- ローカルプロジェクトはasdの設定とか面倒そうでやってなかったけど
quickproject使えば自動で生成されるんだな
前より楽になったしもっと早めに調べておけばよかった
- 39 :デフォルトの名無しさん:2014/10/07(火) 19:50:29.81 ID:1sqcCb/K.net
- >>37
やっぱそんな感じなんですかね
一つのore-xandriaにいろいろ詰め込んでquicklispのlocal-projectに置いてるだけだったので、整理しようかなと思ってたんですが
参考になりました
- 40 :デフォルトの名無しさん:2014/10/07(火) 20:34:41.77 ID:/bWACu+C.net
- (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))
- 41 :デフォルトの名無しさん:2014/10/07(火) 21:26:20.95 ID:WZBCV0KR.net
- declareをhigh-speedやvar-stringマクロで表すのは無理
コードウォークするか別のアプローチを取るしかない
- 42 :デフォルトの名無しさん:2014/10/07(火) 21:27:43.76 ID:WZBCV0KR.net
- 書き込んだ後で思い出したけどリードマクロならdeclareに展開しても大丈夫だった
- 43 :デフォルトの名無しさん:2014/10/07(火) 23:54:28.45 ID:1sqcCb/K.net
- (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)))
こんなんじゃだめなの?かなりてきとーに書いたけど
- 44 :デフォルトの名無しさん:2014/10/08(水) 03:05:44.37 ID:TuLw9ECs.net
- >>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)
- 45 :デフォルトの名無しさん:2014/10/08(水) 16:33:49.70 ID:sWEVGgQw.net
- 型宣言とか最適化宣言って最初からつけといた方がいい?
後からつけるのは面倒そうだけど最初からつけるのも面倒だし
- 46 :デフォルトの名無しさん:2014/10/08(水) 17:24:24.76 ID:fEubzyH3.net
- >>45
コンパイラにチューニングの肝を教える為のシステムだろう?
とりあえず動くコード書いてって言うREPL大好きな人なら後からだし、設計から最適化を含む人なら最初から入れるだけじゃないの?
あんまり難しく考えるとはげちゃうぞ
- 47 :デフォルトの名無しさん:2014/10/08(水) 17:37:35.42 ID:WnZHVY78.net
- 最初から入れる方向で設計する方が
あとあと抜本的大改造しなくてすみそうな
- 48 :デフォルトの名無しさん:2014/10/08(水) 17:43:22.35 ID:sWEVGgQw.net
- > あとあと抜本的大改造しなくてすみそうな
やっぱり最初から宣言書いといた方が楽かな
はげるのは困るし
- 49 :デフォルトの名無しさん:2014/10/08(水) 17:52:50.07 ID:WnZHVY78.net
- っていうか
人に聞いて決めるようじゃだめじゃないか?
自分で判断、どう判断しようか、その方針で作っていくうちにその良し悪しを知るのも勉強
- 50 :デフォルトの名無しさん:2014/10/08(水) 17:53:20.23 ID:WnZHVY78.net
- ×どう判断しようか
○どう判断しようが
- 51 :40です。:2014/10/08(水) 21:03:00.62 ID:kqWBLcYL.net
- 40です。
みなさま、ありがとうございます。
特に41さま、42さま、43さま、44さま、
具体例を示していただいて、大変勉強になりました。
また45からの「最初か後か」の議論。
参考にいたします。
ちなみに私は、正解を探る技量が自身に無いと考えていて
ひと通り書いて速度が気になれば「後から」改変する
方法でやっています。
これだと、とりあえず必要な目先の事だけに集中できて
コードのスッキリ感が保てると思うので。
- 52 :デフォルトの名無しさん:2014/10/13(月) 19:13:35.11 ID:iLY7u2fN.net
- cl-ppcreってparse-stringして正規表現をS式にしたあと
それを使って文字列比較のクロージャを作ってるように見えるんだけど
dfaのコードが見当たらない
文字列比較のクロージャを使うやり方では有限状態機械はいらないのかな
- 53 :デフォルトの名無しさん:2014/11/08(土) 12:44:37.99 ID:DaCYtKLp.net
- clojureとcommon lispとschemeのどれを学んだら良いか悩んでいます。
common lispが気になっているのですが、
モダンLispといわれるclojureの方がJVM言語ということもあって現実的に利用が容易な気もしていますし、
schemeはシンプルということで学びやすいのかなとも思います。
主観でも良いのでおすすめや優位性を教えていただけないでしょうか。よろしくお願いします。
- 54 :デフォルトの名無しさん:2014/11/08(土) 12:54:08.79 ID:6u8ySBY5.net
- >>53
ここはcommon lispのスレなのでおすすめは決まっているようなものですがclojureです。
ユーザーが親切。
- 55 :デフォルトの名無しさん:2014/11/08(土) 13:24:51.50 ID:vifAICnG.net
- Schemeがシンプルっていうのは正しいけど誤解でもある。
コミュニティで合意できた部分だけが仕様としてまとまったので仕様だけを見るなら綺麗で単純だけど、
決着がついてない論争は膨大にあって、処理系ごとに方針の違いが大きかったりする。
きちんと理解しようとすると、思ったよりは容易でない。
でも、まあ、 Common Lisp よりは楽かな。
Clojure は JVM が先にあって Lisp 的な外観をくっつけたものなので、
言語としての構造は Lisp 的テイストよりも Java 的テイストに寄ってると思う。
いろいろと Lisp っぽくないので Lisp についての理解を深めたいなら
あまり向いてないかもしれない。
現実路線というのはその通りだと思う。
Common Lisp は良くも悪くも Lisp 代表って感じ。
- 56 :デフォルトの名無しさん:2014/11/08(土) 13:41:44.59 ID:SZeI55Wm.net
- >>53
使って学ぶならClojureがおすすめ
入門書は孔雀が表紙の本がGaucheの人が訳してて読みやすいし分かりやすい
ここCLスレだけど
- 57 :デフォルトの名無しさん:2014/11/08(土) 14:08:51.53 ID:LD3zpp/h.net
- >>53
お勧めは、common lisp
schemeはlisp矯正ギブスみたいなところがあって、他言語やってた人にはいい気がするけど、
何かアプリを作ろうとすると、ライブラリがなくて面倒だったり、処理系依存が増えたりする。
clojureはjavaのライブラリを呼び出せるので、手軽にアプリが作りやすい。まそのおかげで、GUIアプリを作るのがやり易い。
その一方で、JVMの縛りを受ける。
armのlinuxで使おうとしたら、armのJVMがあんまりよくないのか、やたらと重かった。
なんだかんだで、common lispはいいバランスだと思う。
あとlisp族初めてなら、emacsとか入力支援のある環境を使った方がいいよ。
- 58 :デフォルトの名無しさん:2014/11/08(土) 14:39:56.17 ID:1s+x8/Zl.net
- >>53
お勧めはClojure、ちくせうCLスレなのに!!!!
Webアプリとかは特に
CommonLispでお気楽極楽する事もできるけど、準備が大変。(GUIやるにはFFIで根性入れるかお高い処理系買うとか)
Clojureはこの点をJVMに依存することで過去の資産を使えるのが利点。
Schemeは僕は好きじゃ無いので説明に困るからお勧めしない。
なお、WebアプリをCommonLispで作るとmade with alien technologyを実感できてコレがたまらん
- 59 :デフォルトの名無しさん:2014/11/08(土) 14:53:14.38 ID:bYONtWuG.net
- abclとかいうjvm上で動くcommon lisp処理系もあるよ
- 60 :デフォルトの名無しさん:2014/11/08(土) 15:36:43.34 ID:ypSedYZ0.net
- Clojure人気すぎワロタ
お前らが考えるCommon LISPの実用に足りないこと、
これさえあれば実用できるのになー(チラッチラッ
って思うことって何?
- 61 :デフォルトの名無しさん:2014/11/08(土) 15:54:44.54 ID:bYONtWuG.net
- コルーチンを実現するためにcl-contでpythonのyieldと同じ機能付けたら
マクロ展開後の式が大きすぎるみたいなこと言われたとき
- 62 :デフォルトの名無しさん:2014/11/08(土) 18:26:11.80 ID:9GHPHPx+.net
- >>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ででも書けばいいんでないかい。
- 63 :デフォルトの名無しさん:2014/11/08(土) 18:37:47.02 ID:Y28pqrHL.net
- おれの個人的意見。
>>53
scheme は scheme を実装して勉強する言語、と言っていいと思う。実装に興味があるならお勧めできる。特に gauche あたりの実装は素晴らしく綺麗で、面白い。
Common Lisp は何かを作るためのパワフルな道具。使えるようになって損はない。力を付ければ、低レベル層から高レベル層まで扱えるのが強み。ただやや古臭いところも。
Clojure は Lisp の皮を被ったちょっと違う何か、かもしれない。モダーンですごく考えられているし、どんどん進歩していて楽しい。コミュニティも活発。
まあ一つをやったら他のことはできない、なんてことはない。どれも面白いから、どんどん手を出すといいと思う。
- 64 :デフォルトの名無しさん:2014/11/08(土) 19:01:00.31 ID:FSWBSvHq.net
- >>53
>>62の補足
The Little Schemerでは徹底して再帰的定義でやる。なのでwhileとかでの非再帰的定期は出てこない。非再帰的的定義など(きっと)頭の良いチンパンジーでさえできるようなものはいちいち扱わない!
また、fibonacci数を求めるなどを再帰的に定義すると非再帰的定義に比べてとても処理速が遅くなることがあるが、末尾再帰の書き方も出てくるので
非再帰定義に同等の速度を再帰的定義では発揮するやり方も学べる。
具体的にはcollecterを使った再帰的定義で末尾再帰が実現される例が出てくる。
この辺りもこのテキストを勧める理由た。ただし!意外に難しいかもしれない。最近、書き込みがあったがこのテキストがわからん、あきらめたと。
どうにもチンプンカンプンなら関連しそうな概念や例についめネットなどで予備調査しながらやるといいと思う。教えてくれる人がいればそれが一番だけどね。
「何?、継続がわからん?
あのな、いいか、女とセックスしたい時にな、女を脱がしてからセックスするだろ?まず脱がしてからセックスすることを継続だ。
それにつきる。」
- 65 : ◆QZaw55cn4c :2014/11/08(土) 20:58:26.72 ID:3fSv7BFT.net
- ごめん、セックスに興味ないから‥
- 66 :デフォルトの名無しさん:2014/11/08(土) 21:45:01.32 ID:pv+SsXYA.net
- ファックよりハックがしたい
- 67 :デフォルトの名無しさん:2014/11/08(土) 21:45:50.89 ID:LHO3gvAT.net
- >>53
Schemeはいい言語だけど、何かをやろうとするとちょっとめんどいことが多いかな
完全な主観で言えばCommon Lispが好きだけど、
何かやりたいことがあってそれを実現したいのならClojureが一番楽だとは思う
- 68 :デフォルトの名無しさん:2014/11/08(土) 22:04:36.91 ID:nB39qpJZ.net
- Libraries,not framework の哲学とか http://eed3si9n.com/node/141 とかが性に合うならClojureでもいいかも
あとは括弧が(Scheme/CLに比べると)少なかったり
- 69 :53:2014/11/08(土) 22:24:12.46 ID:k2noelFOt
- アクセス禁止にされてしまいレスが遅くなって申し訳ありません。
実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。
- 70 :デフォルトの名無しさん:2014/11/08(土) 22:16:41.69 ID:pv+SsXYA.net
- lisp方言としてはarcが好きだけど処理系がなあ
- 71 :デフォルトの名無しさん:2014/11/09(日) 17:30:33.39 ID:9cWBVjQF.net
- アクセス禁止にされてしまいレスが遅くなって申し訳ありません。
実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。
- 72 :デフォルトの名無しさん:2014/11/09(日) 21:16:34.40 ID:LY/WWL8I.net
- 最近思うんだけど、Lispの利点で重要だけどあまり宣伝されてないのはrepl。
書いたコードを即時に動かして結果やデータを見つつ、徐々に大きくしていくスタイルは脳汁どばどば出る。
LispマシンやCLIM系のインスペクタやデバッガも、このスタイルのためにあるように思える。
- 73 :デフォルトの名無しさん:2014/11/09(日) 21:40:49.56 ID:OnT24YzJ.net
- リスプの概念をスマートに認識できるのはスキームだけどな
ま、いいけど
バイバイ
- 74 :デフォルトの名無しさん:2014/11/09(日) 21:41:43.14 ID:OnT24YzJ.net
- >>72
インタープリター共通の事じゃいのか
- 75 :デフォルトの名無しさん:2014/11/09(日) 21:44:22.51 ID:4nIud3Qa.net
- >>72
REPL が重要なのは同意。でも、REPL はもっと進化していいと思う。SLIME でもまだ不満だ。
例えばだけど、プロファイリング結果をグラフでREPLとは別のウィンドウに表示し続けるとか。アレグロにはあったけどCLOSのクラス階層を表示してくれるとか。
- 76 :デフォルトの名無しさん:2014/11/09(日) 22:24:39.17 ID:WJCAde3H.net
- >>75
LightTableってエディタでclojureいぢると少し近い感じになるかも
CLだとやっぱりFranzとか欲しくなる
小売りで買えないから学習用の奴しか触ったこと無いけどたしかに脳汁が出そう
- 77 :デフォルトの名無しさん:2014/11/09(日) 22:46:55.86 ID:HXAk+KxZ.net
- slime使ってないの?
- 78 :デフォルトの名無しさん:2014/11/09(日) 23:45:42.55 ID:/Un9rwFK.net
- 昔の Lisp の開発環境って使ったことは無いんだけど、スクリーンショットだとか動画とか見ると、
今でいう JavaScript を Chrome の開発環境で使ってるみたいな感じで、かなりリッチなんだな。
slime なんてめじゃないぞ。 どうして退化してしまったのか…。
- 79 :デフォルトの名無しさん:2014/11/10(月) 11:24:29.22 ID:7fhrA1DH.net
- >>75
現状ライブラリとして広く共有されてるかは別としてそれなら簡単に作れると思うけどね
クラスブラウザなら素朴なのがslimeにもあるよ(require 'slime-xref-browser) M-x slime-browse-classes これもCLOS入門で試しに作ることが多い
replが重要なんじゃなくて対話性が重要ってことなんじゃないのかな
そして他の言語にかなりキャッチアップされてるから,いまとなっては大した特長でもない
- 80 :デフォルトの名無しさん:2014/11/10(月) 12:13:10.95 ID:1g8XtIDd.net
- 柔軟性や透明性など、自由度が段違いでは
- 81 :デフォルトの名無しさん:2014/11/10(月) 13:13:00.20 ID:ELyMc5jq.net
- slime-browse-classes初めて知った
クラスの継承関係を表示するだけでも便利だけどスロットとか出ないの?
- 82 :デフォルトの名無しさん:2014/11/10(月) 13:30:21.54 ID:7fhrA1DH.net
- >>81
シンボルの上でC-c C-d dすれば良いんじゃねw
いずれにせよ柔軟性や透明性など、自由度が段違いですのでカスタマイズするのも自作するのも簡単だろう
- 83 :デフォルトの名無しさん:2014/11/10(月) 13:34:45.80 ID:1g8XtIDd.net
- M-x Slime-Inspect
- 84 :デフォルトの名無しさん:2014/11/10(月) 14:24:04.72 ID:ELyMc5jq.net
- >>82
その方法なんで気付かなかったんだろ
ありがとう
- 85 :デフォルトの名無しさん:2014/11/10(月) 15:06:49.35 ID:ELyMc5jq.net
- slimeでさえ使い込なせてないのにそれより多機能な>>72があっても豚に真珠だな
早く豚から海豚くらいになりたい
- 86 :デフォルトの名無しさん:2014/11/10(月) 21:56:18.97 ID:9fx5sy2R.net
- うぉー、LightTable かっけー!サンクス!
いろいろいじってみる。
>>79
すまん、おれの説明が悪かった。
クラスブラウザは単なる例で、もっとLispの特徴を活かした開発支援のアイディアはあると思っているんだよ。
それがあることで生産性がぐっと上がるような。
具体例が出せないが、多分一つの方向は、コードから得られる統計的データを生かすものだと思う。
- 87 :デフォルトの名無しさん:2014/11/10(月) 22:52:31.46 ID:MlKubg7v.net
- みんな そんなにreplとクラスブラウザが好きなら
Smalltalkにしちゃいなよ
- 88 :デフォルトの名無しさん:2014/11/11(火) 12:06:59.77 ID:VkGqc8ov.net
- Smalltalkと同程度に、インタラクティブに、イテレーティブに、アジャイルに、GUIを含めて開発できるということだな
- 89 :デフォルトの名無しさん:2014/11/11(火) 22:45:43.16 ID:2Fik2SFv.net
- Smalltalk はもう何年も前に死んでるじゃないか
- 90 :デフォルトの名無しさん:2014/11/12(水) 00:49:21.53 ID:6Jeysito.net
- clojureから流れてきたものだけど、CLer的にはloopってどういうものだと認識されてる?
同じlispではあるけど、CommonLispは関数型であろうとしてるように感じないんだよね
効率のためなのかわかりやすさのためなのか、ローカルでさえあれば再代入まみれの副作用まみれっていうように感じる
loopも結局使い方によっては関数型の繰り返しっぽいっちゃぽいんだけど、どう使うにしろlispっぽくはないよね?
そのへんどう思われてるのか気になる。気軽に使っていいものなの?
- 91 :デフォルトの名無しさん:2014/11/12(水) 00:52:40.52 ID:fuf0dhj5.net
- CLはマルチパラダイム言語。 そう書いてある。
- 92 :デフォルトの名無しさん:2014/11/12(水) 01:03:41.08 ID:zOf39RiBz
- 対象に応じた記述方法を選ぶのがCommonLisp
関数型は選択肢の一つでしかない
- 93 :デフォルトの名無しさん:2014/11/12(水) 00:58:18.03 ID:bYyH4m5K.net
- CommonLispはマルチパラダイム言語であって、別に関数型であろうとしているわけではない
Lispは歴史的な理由で関数型と勘違いされているが、手続的にもかけるし関数的にも書けるしOO的にも書ける
状態が増えると保守性もろもろが落ちるのは真なので、そこらへん意識しつつ、適材適所で書けばいい
- 94 :デフォルトの名無しさん:2014/11/12(水) 01:25:54.24 ID:6Jeysito.net
- >>91>>93
マルチパラダイムってのは確かに書いてあったけど、利用者側はなるべく関数型っぽく書こうとするべきなのかなと思っていた
Scalaとかだとマルチパラダイムだけどなるべく関数型でかくことが推奨されてるイメージがある
なんでも関数型っぽく書くのではなく、わかりやすく書きやすく目的にあったように書きましょうというのがCLの正しいスタイルなのかな?
つまり状況に適していると判断できればloopをつかうことをためらう正当な理由はないってことか。
性能もdo系統や末尾再帰と比べて申し分ないようだし
- 95 :デフォルトの名無しさん:2014/11/12(水) 01:37:55.86 ID:/4vNcbkH.net
- 出来るだけ関数型で書くかはコーディングスタイルの話じゃないの
- 96 :デフォルトの名無しさん:2014/11/12(水) 01:42:46.23 ID:bYyH4m5K.net
- 概ねそんな感じでいいと思うけど、結局はどんな書き方も許されているので利用者が適宜判断する以外ないってだけかなあ
CommonLispとしての正しいスタイルというものはたぶんない
- 97 :デフォルトの名無しさん:2014/11/12(水) 03:37:37.47 ID:lROmcFul.net
- Lisp族は利用者が対象に最適と考える記述を書きやすくしている
他の言語は言語作成者が最適と考える記述を書きやすくしている
- 98 :デフォルトの名無しさん:2014/11/12(水) 07:03:56.02 ID:1phNlnMj.net
- mapcarは知ってるけど他のmap系は知らないので
hyperspecを眺めていたら疑問に思ったので質問します。
結果を返さないし反映もされないmapcは
どんな有用性があるのでしょうか。
おそらく私の無知なのでしょうが
mapcの存在する意味、使いどころが解りません。
どなたか説明出来ませんか。
- 99 :デフォルトの名無しさん:2014/11/12(水) 12:30:36.42 ID:imZE8AUt.net
- 副作用
- 100 :デフォルトの名無しさん:2014/11/12(水) 12:47:39.86 ID:7Wb8wFzPD
- http://basicwerk.com/blog/archives/1592
>mapc は第1引数の関数内でやったことを元に新しいリストをコンスしない。
だから(もう一回言うけど)副作用にだけ興味が有るときは mapcar よりもコンスしない分だけ速い。
- 101 :デフォルトの名無しさん:2014/11/12(水) 16:34:38.00 ID:l7WlF7lN.net
- >>98
97のとおり副作用目的で使う
用途としてはdolistと同じだがmapcはそれより昔からある
他の言語でいうとRubyのmapとeach、Schemeのmapとfor-eachのような関係
dolistがあるので存在意義が薄れた
- 102 :デフォルトの名無しさん:2014/11/12(水) 17:21:10.90 ID:PsXMXR/P.net
- (dolist (obj lst) (f obj))
の場合は
(mapc #'f lst)
に出来て簡潔
- 103 :デフォルトの名無しさん:2014/11/12(水) 22:04:39.40 ID:6H3fSFab.net
- CL はマルチパラダイムなのは認めるけど、最近のパラダイムを取り込めてなくないか?
誰か haskell の型システムを完璧にCLに取り込むべきだ。(liskell は死んだっぽいし)
- 104 :デフォルトの名無しさん:2014/11/12(水) 22:24:25.19 ID:HM1OSRRp.net
- S式で書かれたMLコードを、静的な型チェックかけたあとでLISPに変換する
ML2CLとか誰か作ってくれ
- 105 :デフォルトの名無しさん:2014/11/12(水) 23:39:16.85 ID:6Jeysito.net
- 静的型付けをもってこいということ?
- 106 :デフォルトの名無しさん:2014/11/13(木) 02:37:58.35 ID:vuqKX1tf.net
- >>103-104
ttps://github.com/rvirding/lfe
erlangをlispとして使う奴ならあるよ、型チェックの為にMLだったらerlangでもよくね?
- 107 :デフォルトの名無しさん:2014/11/14(金) 14:37:50.24 ID:9VbJfwoj.net
- cons cellのアドレスとそのconscellのcarのアドレスは別物ですよね?
- 108 :デフォルトの名無しさん:2014/11/14(金) 15:39:00.51 ID:1eTt6dGM.net
- >>107
基本的には別物だけど immidiate value の場合はそうでもないというか、
ちょっと説明しづらいけど変則的なことが起こりうるよ。
- 109 :デフォルトの名無しさん:2014/11/15(土) 01:18:12.55 ID:RRwmbFh6.net
- 整数がいくつか入ったリストがあってそれで
リストが(1 2 3)なら"1-2-3"という文字列を作りたい
(format nil "~{~A-~}" '(1 2 3))なら"1-2-3-"になってしまう
なんか良い方法無いかな
- 110 :デフォルトの名無しさん:2014/11/15(土) 01:31:48.99 ID:NffmTIGL.net
- (format nil "~{~a~^-~}" '(1 2 3))でどうでしょう?
- 111 :デフォルトの名無しさん:2014/11/15(土) 01:37:00.40 ID:6gSgpWRh.net
- formatは変態すぎてついていけないわw
- 112 :デフォルトの名無しさん:2014/11/15(土) 01:38:11.38 ID:RRwmbFh6.net
- ありがとう
最後だけ除く指定方法があったのか
- 113 :デフォルトの名無しさん:2014/11/15(土) 05:48:51.06 ID:DUX/03NY.net
- >>108
immediate valueって何が言いたいの?
* (let ((cons '#0=(#0# . nil)))
(eq cons (car cons)))
T
これのこと?
これはimmediate value って言わなくね?
- 114 :デフォルトの名無しさん:2014/11/15(土) 08:18:21.88 ID:s7ITBfO0.net
- >>113
105が言いたいのは tagged pointer のことじゃないの?
- 115 :デフォルトの名無しさん:2014/11/16(日) 14:40:52.03 ID:HhopYCdj.net
- 質問です
(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))))
もっと良い方法があるような気がするんですが、ご指南お願いします
- 116 :デフォルトの名無しさん:2014/11/16(日) 14:53:53.90 ID:ZU8aQvb1.net
- リードマクロ#.を使うか定数として定義しておく
- 117 :デフォルトの名無しさん:2014/11/16(日) 14:59:40.61 ID:HhopYCdj.net
- >>116
ありがとうございます
リードマクロは盲点でした
- 118 :デフォルトの名無しさん:2014/11/16(日) 20:30:55.78 ID:clJNFDl+.net
- 内包表記をS式で表そうとしたら
結局、loopみたいな文法になるような気がして
loopは他の言語の内包表記のような感覚で使ってるよ
- 119 :デフォルトの名無しさん:2014/11/18(火) 02:17:48.60 ID:+qAFtLW3.net
- sbcl 1.2.5ってスペシャル変数にバグある?
なんかどうにもおかしい部分があるんだけど
- 120 :デフォルトの名無しさん:2014/11/18(火) 05:43:54.14 ID:6/OvObTG.net
- >>119
再現コードがないからどこがおかしいのかわからない明日も会社なのに眠れないし最低の気分だよ
- 121 :デフォルトの名無しさん:2014/11/18(火) 13:54:56.29 ID:TO5hAplY.net
- 今起きて確認したら
(let ((x y))
(declare (special x)))
とするところを
(declare (special x))
(let ((x y))
)
としてただけだった
安心して寝てくれ>>120
- 122 :デフォルトの名無しさん:2014/11/18(火) 16:00:38.09 ID:fmsMXjf6.net
- ∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
- 123 :デフォルトの名無しさん:2014/11/19(水) 23:38:38.23 ID:074lLX1H.net
- マクロのマクロのデバッグ辛すぎ
なんで同じ式を生成してるのに片方だけエラー出るんだ
- 124 :デフォルトの名無しさん:2014/11/20(木) 00:49:56.68 ID:OJJlSD0q.net
- 順序
- 125 :デフォルトの名無しさん:2014/11/20(木) 13:58:27.72 ID:o6KEcfS7.net
- マクロを生成するマクロのデバッグがむずいのはだいたい下のどれか
・展開で副作用がある糞マクロだから
・100行以上ある糞マクロだから
・分割できるのに1passでなんでもやろうとする糞マクロだから
・`(, ,@)式の扱い方を知らない糞野郎だから
・リスト操作のいろはを知らない糞野郎だから
・マクロのデバッグ方法を知らない糞野郎だから
- 126 :デフォルトの名無しさん:2014/11/20(木) 14:32:28.25 ID:BES29AhP.net
- その一番下は展開されて122全文になるのか?
- 127 :デフォルトの名無しさん:2014/11/20(木) 16:50:36.53 ID:BES29AhP.net
- >>123の原因は結局マクロを使ってる部分の式が間違ってただけだったんだけどね
- 128 :デフォルトの名無しさん:2014/11/20(木) 17:57:21.80 ID:OJJlSD0q.net
- ・使用箇所で意味が変わる不衛生な糞マクロだから ← New!
- 129 :デフォルトの名無しさん:2014/11/20(木) 18:07:48.22 ID:BES29AhP.net
- もうこのネタつまらないからいいです
- 130 :デフォルトの名無しさん:2014/11/20(木) 22:59:19.78 ID:hiR3RK0/.net
- eval-whenの使い方がいまいちわからない
てかマクロの展開とコンパイル・実行の関わりがいまいちわからない
- 131 :デフォルトの名無しさん:2014/11/21(金) 00:18:26.19 ID:cycGFVEO.net
- Lispの闇の一端。
- 132 :デフォルトの名無しさん:2014/11/21(金) 00:21:39.70 ID:XZg95LLm.net
- >>130
本よめば? 実践CommonLispにもかいてある
http://www.gigamonkeys.com/book/the-special-operators.html
随分とあかるい闇だな
- 133 :デフォルトの名無しさん:2014/11/21(金) 00:29:52.03 ID:RgbwwAKP.net
- >>130
割と理詰めで、必要性を理解できるところだよ
- 134 :デフォルトの名無しさん:2014/11/23(日) 15:41:55.61 ID:QSlTVfZV.net
- なんかC++の闇みたいだな
C言語をマルチパラダイムに使えるようにいろいろ突っ込んだのがC++で、
lisp族に同様に色々突っ込んだのがCommon Lispみたいな
- 135 :デフォルトの名無しさん:2014/11/23(日) 15:53:17.70 ID:meGdP6rU.net
- そうだよ。
- 136 :デフォルトの名無しさん:2014/11/23(日) 16:59:14.19 ID:GIFgmbRX.net
- じゃあそろそろ新しい規格が欲しいな
- 137 :デフォルトの名無しさん:2014/11/23(日) 17:20:06.94 ID:fhpYLSa9.net
- そういう声はたまに聞くけどなんで誰も行動しないの?
- 138 :デフォルトの名無しさん:2014/11/23(日) 17:39:25.60 ID:P0o96etQ.net
- スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
- 139 :デフォルトの名無しさん:2014/11/23(日) 17:47:32.22 ID:fhpYLSa9.net
- > スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
- 140 :デフォルトの名無しさん:2014/11/23(日) 23:17:38.64 ID:c42CBMgb.net
- >>139
おいらはformatだけで挫折する自信あるぜ
- 141 :デフォルトの名無しさん:2014/11/23(日) 23:32:32.89 ID:3bQdEAIa.net
- formatはlispで書けるからいいとしてその下のwriteが大きすぎる
- 142 :デフォルトの名無しさん:2014/11/24(月) 06:08:09.05 ID:hJdg5lTu.net
- 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
- 143 :デフォルトの名無しさん:2014/11/24(月) 06:09:29.38 ID:hJdg5lTu.net
- 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
- 144 :デフォルトの名無しさん:2014/11/24(月) 12:58:51.41 ID:utSDrll/.net
- On Lispを読んでいるのですが、関数型インターフェースのところで
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
- 145 :デフォルトの名無しさん:2014/11/24(月) 23:22:30.44 ID:n8voiuRi.net
- 静的に狭い場所で管理された副作用は速度の為に許容するって意味じゃね
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
- 146 :デフォルトの名無しさん:2014/11/24(月) 23:34:37.59 ID:Ig3vRg1v.net
- ブートスクラップ…
- 147 :デフォルトの名無しさん:2014/11/24(月) 23:38:40.09 ID:n8voiuRi.net
- 横文字には弱いみたい
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
- 148 :デフォルトの名無しさん:2014/11/24(月) 23:56:03.83 ID:sHaIAKeh.net
- >>144
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
- 149 :デフォルトの名無しさん:2014/11/30(日) 01:59:52.68 ID:pF3M2mHWZ
- 最近Common Lispを始めて、Emacsも同時に使い始めたのですが、
Emacs上でできるCommon Lispコードのエラーチェック機能があれば、
教えて頂けませんでしょうか?
EmacsにはFlymakeというエラーチェック機能があるようなのですが、これは
Coomon Lispには対応していないようで、調査が詰まってしまいました。
Emacs上でCommon Lispのソースをコンパイルするコマンドで
エラーチェック機能を兼ねるというのを思いついたのですが、その考えはおかしいでしょうか?
- 150 :デフォルトの名無しさん:2014/11/30(日) 13:53:12.76 ID:gsyKJq9/1
- >> 149
0. slimeを使う:
- インストールには、quicklisp-slime-helperが便利、cf. https://github.com/quicklisp/quicklisp-slime-helper
- チュートリアルとして、Marco Baringerの動画がおすすめ、cf. http://common-lisp.net/project/movies/movies/slime.mov
1. スペルを間違わないように補完する:
- autocomplete-mode cf. http://cx4a.org/software/auto-complete/index.ja.html
- autocomplete-mode for slime cf. https://github.com/purcell/ac-slime
2. カッコのバランスを崩さないようにする:paredit-mode cf. http://www.daregada.sakuraweb.com/paredit_tutorial_ja.html
3. コンパイル時、処理系からのメッセージをちゃんと読む(e.g., warning, compiler-note, errorなど)
4. REPLを活用する:デバッカに落ちたらBacktraceをよく読む。
ご参考まで
- 151 :デフォルトの名無しさん:2014/12/02(火) 00:48:14.88 ID:oMH805i/.net
- 教えてくれ
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で使ったときはあった起動時アニメーションがないんだ
なんで?
- 152 :デフォルトの名無しさん:2014/12/02(火) 00:57:02.84 ID:nnpj2kBC.net
- slime-setupをhelpで見ればわかるよ
- 153 :デフォルトの名無しさん:2014/12/03(水) 11:35:40.26 ID:c/4+MUqf.net
- This `cl-labels' requires `lexical-binding' to be non-nil
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
- 154 :デフォルトの名無しさん:2014/12/03(水) 14:14:49.31 ID:ReckfAN/.net
- 146 = 148なのか?
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
- 155 :148:2014/12/03(水) 20:17:25.25 ID:Wu/dN4SR.net
- >151 = 148なのか?
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
- 156 :デフォルトの名無しさん:2014/12/04(木) 17:51:59.64 ID:mQjd1sH/.net
- 質問です
素人知識ながらコードの高速化を行っているのですが、例えば次のコードを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は本当に高速化の脅威になりますか?
また、取り除くことはできますか?
- 157 :デフォルトの名無しさん:2014/12/05(金) 02:59:30.47 ID:EEY9XvTS.net
- >>156
eq速くして全体が速くなったというのを寡聞にして聞かない
何作ってるの?
- 158 :デフォルトの名無しさん:2014/12/05(金) 18:35:21.48 ID:0LF1tZEz.net
- >>157
将棋のAIを作ってます
インライン展開してない状態でプロファイルを取ったとき
eqを使う単純な関数で時間がかかっており、>>156のような状態に気づきました
単なる比較で分岐命令が生成されることに違和感があり質問しました
ちなみに今プロファイルを取りなおしたところそんなに時間もかかっておらず、なんだったのかって感じです
- 159 :SCHEME餃子 ◆8X2XSCHEME :2014/12/06(土) 01:41:19.85 ID:17surw1A.net
- インライン展開すると関数コールが省略できるってのもあるし、
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
- 160 :デフォルトの名無しさん:2014/12/06(土) 20:52:17.44 ID:Nd/Kweiq.net
- >>142
http://athos.hatenablog.com/entry/20100504/lisp_in_small_pieces
- 161 :151:2014/12/06(土) 21:57:29.75 ID:lLsVvdEd.net
- >>159
もうちょっと苦しんでみます
- 162 :デフォルトの名無しさん:2014/12/11(木) 20:00:12.67 ID:URNWWvBk.net
- gcl使ってたらhandler-case,ignore-errosが無いことに気付いた
やっぱりansi準拠じゃないとansin出来んな
- 163 :デフォルトの名無しさん:2014/12/16(火) 16:07:51.10 ID:/bfoimZs.net
- define-hogeマクロを定義するマクロはどういう名前にすればいいんだろ
define-define-hogeとかしか思い付かないけど不恰好だし
- 164 :デフォルトの名無しさん:2014/12/16(火) 16:11:37.96 ID:CudKiy/r.net
- defmacro-hoge でいいだろ
- 165 :デフォルトの名無しさん:2014/12/16(火) 16:13:21.14 ID:/bfoimZs.net
- そういえばそうか
- 166 :デフォルトの名無しさん:2014/12/22(月) 20:51:38.71 ID:ghZKV2ZQ.net
- allegro clの無償版って普段のlispプログラミングにどれくらい使えるかな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
- 167 :デフォルトの名無しさん:2014/12/22(月) 21:56:16.19 ID:36o3vILg.net
- >>166
正直、あまり常用したいとは思わない
何をするにも、試用版かなんかのダイアログが出てきたと思う
allegro購入予定でなければ、cclとかsbclとか使った方がいいと思う
- 168 :デフォルトの名無しさん:2014/12/22(月) 22:35:05.70 ID:18uotQck.net
- やっぱりただで使わせる気は無いのか
気分転換に環境変えてみようと思ったけど残念
- 169 :デフォルトの名無しさん:2014/12/25(木) 00:13:21.90 ID:eMbHIiaIM
- let-over-lambdaのaifを使うとitが定義さて無いとエラーがで出るんだけどどうすれば使えるか誰か教えてください。
CL-USER> (ql:quickload :let-over-lambda)
To load "let-over-lambda":
Load 1 ASDF system:
let-over-lambda
; Loading "let-over-lambda"
..
(:LET-OVER-LAMBDA)
CL-USER> (apropos "aif")
LET-OVER-LAMBDA:AIF (fbound)
; No value
CL-USER> (lol:aif 1 it)
; in: LET-OVER-LAMBDA:AIF 1
; (IF LET-OVER-LAMBDA::IT
; IT
; NIL)
;
; caught WARNING:
; undefined variable: IT
;
; compilation unit finished
; Undefined variable:
; IT
; caught 1 WARNING condition
; Evaluation aborted on #<UNBOUND-VARIABLE IT {100428B693}>.
CL-USER>
- 170 :デフォルトの名無しさん:2014/12/26(金) 14:55:55.44 ID:ivhZ4+Q3.net
- loopマクロのトークンはキーワードにするのはどういう意味があるんだ
- 171 :デフォルトの名無しさん:2014/12/27(土) 06:45:42.86 ID:BPfLluBn.net
- >>170
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
- 172 :デフォルトの名無しさん:2014/12/27(土) 07:44:44.77 ID:PhaXTdWk.net
- なにがインターンされるかなんて気にして書いてる人なんかいないよ、お兄ちゃん!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
- 173 :デフォルトの名無しさん:2014/12/27(土) 15:12:23.12 ID:Z5TU2mXJ.net
- ライブラリ書いてる人は気にしてるとおもうけど
- 174 :デフォルトの名無しさん:2014/12/27(土) 15:12:55.73 ID:8eya4d4I.net
- 補完のときにノイズになるかな
- 175 :デフォルトの名無しさん:2014/12/28(日) 01:28:27.48 ID:Sd6FVmJh.net
- 外部から参照されるシンボルでもない限りファイルをコンパイルしたファイルからはシンボルは勝手に消えるからライブラリ作るやつはそんな細かいこと気にしてないだろ…
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
- 176 :デフォルトの名無しさん:2014/12/30(火) 09:14:33.10 ID:O6VRzwmF.net
- loopマクロのuptoとかがキーワードでも動く、ってのは
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
- 177 :デフォルトの名無しさん:2014/12/30(火) 14:08:08.62 ID:27cBYY6U.net
- 仕様で規定されてるかどうかはloopの項目に記載があるから違法か合法かは読めばわかるな。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
- 178 :デフォルトの名無しさん:2014/12/30(火) 14:27:00.81 ID:vs+COFUK.net
- 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.
- 179 :デフォルトの名無しさん:2014/12/30(火) 19:08:08.10 ID:vs+COFUK.net
- >>177
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
- 180 :デフォルトの名無しさん:2015/01/13(火) 17:41:40.78 ID:n8FCO54L.net
- 構造体やクラスの名前からスロットを取得する方法ってある?
- 181 :デフォルトの名無しさん:2015/01/14(水) 20:45:49.59 ID:Wha2sJr8.net
- class-slots てメソッドがあるよ。構造体に使えたかは忘れた
- 182 :デフォルトの名無しさん:2015/01/14(水) 21:08:24.00 ID:1rDSBA79.net
- >>181
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
- 183 :デフォルトの名無しさん:2015/01/15(木) 02:26:41.38 ID:3CJhIHgr.net
- guiとかweb系のライブラリないの
- 184 :デフォルトの名無しさん:2015/01/16(金) 01:42:21.96 ID:dM6MW5TX.net
- あるよ
- 185 :デフォルトの名無しさん:2015/01/17(土) 18:34:52.38 ID:CWvWtJ6X.net
- evalとapplyの違いは何ですか?
- 186 :デフォルトの名無しさん:2015/01/17(土) 19:00:09.58 ID:P4fG3Fn9.net
- carとfuncallの違いはなんですか?
と聞いてるようなものなんだが
- 187 :デフォルトの名無しさん:2015/01/17(土) 19:12:25.44 ID:73qLESVw.net
- >>185
ええとね
単語のスペルと長さがちがうかなぁ
それとevalはevaluateの省略だね
eval is short for evaluate
- 188 :デフォルトの名無しさん:2015/01/17(土) 19:40:12.57 ID:CWvWtJ6X.net
- http://qiita.com/mandel59/items/8f9111143aea94e7b363
ここで同じだと言っている人がいて気になったので
- 189 :デフォルトの名無しさん:2015/01/17(土) 19:49:45.85 ID:P4fG3Fn9.net
- この板のいくつかの場所で言われてるけど
その人ちょっとおかしいんだよ
真に受けない方がいい
- 190 :デフォルトの名無しさん:2015/01/17(土) 20:03:49.61 ID:CWvWtJ6X.net
- いえこの人がおかしいのは知ってますし真に受けるつもりもありません
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
- 191 :デフォルトの名無しさん:2015/01/17(土) 20:30:19.29 ID:P4fG3Fn9.net
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_apply.html
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_eval.html
- 192 :デフォルトの名無しさん:2015/01/17(土) 21:08:56.14 ID:CWvWtJ6X.net
- 適用は評価の前段階みたいな感じでいいんでしょうか
- 193 :デフォルトの名無しさん:2015/01/17(土) 21:14:39.87 ID:X3AOWrxV.net
- あのう、きちっとしたテキストを一冊読んだほうがいいよ
- 194 :デフォルトの名無しさん:2015/01/18(日) 02:14:00.68 ID:m7MxJZlS.net
- (eval `(funcall ,f ,@args))と(apply f args)が同じっていいたいのかね?
ようわからんけど…
- 195 :デフォルトの名無しさん:2015/01/18(日) 07:43:52.27 ID:FaVyQjad.net
- evalはシンボルのリストを読み込んでその内容を実行する。
applyは既に評価されて定義された関数を適用すること。
- 196 :デフォルトの名無しさん:2015/01/18(日) 07:49:09.26 ID:oexYoD6M.net
- eval だけでいいのに何でapplyが重視されてるんだ?、と思ったら、SICPを読もう
- 197 :デフォルトの名無しさん:2015/01/18(日) 09:28:02.82 ID:8C45mKK2.net
- >>185
commonLispの板でeval applyといえば特定の実装の話になるから
lisp scheme板に話をふった方が良いよ
そういう話好きなやついるから
- 198 :デフォルトの名無しさん:2015/01/19(月) 01:45:04.66 ID:wgUa3gjO.net
- emacsのslimeについて質問です
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
- 199 :デフォルトの名無しさん:2015/01/23(金) 08:44:20.17 ID:EcShhbHE.net
- adw-chartingって(ql:quickload :adw-charting)しただけじゃ
使えないんでしょうか
- 200 :デフォルトの名無しさん:2015/01/23(金) 12:42:39.31 ID:iqBUzDAo.net
- >>199
エスパーだけど、サブシステムに分かれてるから
(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"))
は配布状態で動いたよ
- 201 :デフォルトの名無しさん:2015/01/23(金) 13:23:05.37 ID:EcShhbHE.net
- >>200
動きましたありがとうございます
quicklispの使い方をわかってなかったので
exampleをコピペしただけでadw-charting:をつけてませんでした
- 202 :デフォルトの名無しさん:2015/01/23(金) 20:10:11.96 ID:Joy6NwRJz
- >エスパーだけど、
やんわりと今度から詳しくかけと言いつつ、解決策も提案する良い書き方だな
- 203 :デフォルトの名無しさん:2015/01/23(金) 21:36:01.97 ID:F+B+etzd.net
- 嬉しいのでチラシの裏書きます
The Little Schemer二回読了!!
勉強になった
次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます
- 204 :デフォルトの名無しさん:2015/01/23(金) 22:50:04.93 ID:NpwsZqSV.net
- 再帰で考えてしまって動的計画法が使いこなせない!
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
- 205 :デフォルトの名無しさん:2015/02/07(土) 08:01:14.41 ID:tz9pe5xW.net
- http://anime.scripts.mit.edu/images/mitinanime_lain3.jpg
Serial Experiments LainではLispのコードのシーンがあるらしい
- 206 :デフォルトの名無しさん:2015/02/07(土) 08:39:22.93 ID:R2/oFkGJ.net
- Lain か…懐かしいなぁ
- 207 :デフォルトの名無しさん:2015/02/07(土) 09:32:47.61 ID:FOHLYtkF.net
- Life Gameのソースっぽい
- 208 :デフォルトの名無しさん:2015/02/07(土) 09:52:15.98 ID:OMRZtff8.net
- D-WaveのOSがCommonLispってマジ?
- 209 :デフォルトの名無しさん:2015/02/07(土) 10:43:02.43 ID:Ei/z8not.net
- >>205
>>208
知らないけど有り得そう
- 210 :デフォルトの名無しさん:2015/02/07(土) 10:51:45.09 ID:FOHLYtkF.net
- >>205
wikiペディアでソースみつけた
ttp://en.wikipedia.org/wiki/Serial_Experiments_Lain
>>208
マジみたい、APIのみ公開だって。
アプリ開発はPython推しだね。
- 211 :デフォルトの名無しさん:2015/02/07(土) 12:02:20.85 ID:saCOOwny.net
- >>205
このソースを書き写した覚えがあるなと思って、
ハードディスクを漁ったら見つかった。
この部分の前後のソースも写してあったけど、
前の部分のソースが明らかにライフゲームの生死判定だった。
- 212 :デフォルトの名無しさん:2015/02/07(土) 13:26:07.79 ID:yKpU9aut.net
- その書き写したソース見たい
- 213 :デフォルトの名無しさん:2015/02/07(土) 13:32:26.38 ID:FOHLYtkF.net
- >>212
>>210のリンクから元本のソース見れるよ。
- 214 :デフォルトの名無しさん:2015/02/07(土) 15:06:09.69 ID:yKpU9aut.net
- 見れた
配列をbit単位で操作するのは効果あるのかな
- 215 :デフォルトの名無しさん:2015/02/07(土) 15:20:36.83 ID:9qdU9S5T.net
- >>214
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
- 216 :デフォルトの名無しさん:2015/02/07(土) 15:36:59.11 ID:6rQaurxf.net
- 一バイトは金のひとすくい
しません、させません、ビットの無駄使い
おかげでビルも立ちました
- 217 :デフォルトの名無しさん:2015/02/08(日) 23:41:38.36 ID:C4tJwi8l.net
- Common Lisp特殊すぎワロタ
http://photos.appleinsider.com/gallery/11591-4649-150115-Swift-l.jpg
http://iphone.appleinsider.com/articles/15/02/07/apples-new-swift-programming-language-takes-flight-with-getty-images-american-airlines-linkedin-and-duolingo
- 218 :デフォルトの名無しさん:2015/02/09(月) 11:04:57.10 ID:inFNj6Hs.net
- >>217
stackoverflowに質問を書く前に問題を解決でき
オープンソースにせずとも問題を解決出来る高い生産性が
有るって事だなw
言語も人も。
- 219 :デフォルトの名無しさん:2015/02/09(月) 11:50:04.98 ID:wTON1hpK.net
- 設定ミスでそうなっただけってどっかで見た気がする
- 220 :デフォルトの名無しさん:2015/02/09(月) 11:55:17.59 ID:gnp8i06N.net
- オープンソースにせずとも問題を解決出来る、って意味分らないね
- 221 :デフォルトの名無しさん:2015/02/09(月) 18:29:24.33 ID:Ysp4l3Zv.net
- 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/
- 222 :デフォルトの名無しさん:2015/02/09(月) 18:35:56.82 ID:yftdnQui.net
- うぉー!
FORTLANと同席かい!!
- 223 :デフォルトの名無しさん:2015/02/09(月) 22:47:33.62 ID:JzEtMJoP.net
- FORTRANじゃあーい!!
- 224 :デフォルトの名無しさん:2015/02/09(月) 22:57:24.39 ID:HcxTGLiU.net
- Ratforってあったよね
- 225 :デフォルトの名無しさん:2015/02/09(月) 23:47:36.78 ID:JzEtMJoP.net
- Rational Fortran
初代プログラミング作法(programming tools)のやつね。
- 226 :デフォルトの名無しさん:2015/02/09(月) 23:55:00.91 ID:bwEZbR4B.net
- http://jbbs.shitaraba.net/sports/42269/
- 227 :デフォルトの名無しさん:2015/02/10(火) 17:05:14.42 ID:Xy5S1/Fv.net
- >> 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
- 228 :デフォルトの名無しさん:2015/03/07(土) 00:42:51.80 ID:1AfT/MV4.net
- 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です。動かす方法はありますか?
- 229 :デフォルトの名無しさん:2015/03/07(土) 00:48:06.97 ID:1AfT/MV4.net
- (defun g!-symbol-p (s)
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))
- 230 :デフォルトの名無しさん:2015/03/07(土) 07:09:08.52 ID:mW7RcyXy.net
- コードコピペしたらちゃんと動いたけど
flattenが間違ってんじゃないかな
- 231 :デフォルトの名無しさん:2015/03/07(土) 16:01:02.06 ID:yXgYIHFE.net
- 試しにwindows版のsbcl1.2.7入れてやってみたが
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
- 232 :デフォルトの名無しさん:2015/03/07(土) 16:17:29.95 ID:IuS2RJP4.net
- clisp+alexandria:flattenでやってみたけど動くよ
- 233 :デフォルトの名無しさん:2015/03/07(土) 16:50:40.73 ID:yXgYIHFE.net
- debianのsbcl1.0.57.0ではちゃんと動く
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
- 234 :デフォルトの名無しさん:2015/03/07(土) 19:54:37.09 ID:sXXhs6bf.net
- これが関係してる?
#:g1: SBCL 1.2.2でのbackquoteの変更
http://g000001.cddddr.org/3615721500
- 235 :デフォルトの名無しさん:2015/03/08(日) 14:36:36.18 ID:AqwQTNqO.net
- 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 してないけど,
普通はこれで動くもんなんです?
- 236 :デフォルトの名無しさん:2015/03/08(日) 14:39:57.84 ID:4UYhxwse.net
- SBCLのバッククォートは構造体に変換されるようになったから
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
- 237 :228:2015/03/08(日) 19:54:56.42 ID:AqwQTNqO.net
- 解決したので報告です. :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
```
- 238 :デフォルトの名無しさん:2015/03/17(火) 01:48:34.28 ID:gpmCn1O6.net
- (変数 値)のリストと式が与えられた状態で、変数を値に束縛した環境で式を評価したいのですが、良い方法がわかりません
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
- 239 :デフォルトの名無しさん:2015/03/17(火) 10:47:28.60 ID:Zf13xXA9.net
- (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だけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
- 240 :デフォルトの名無しさん:2015/03/17(火) 10:48:46.17 ID:Zf13xXA9.net
- なぜか変な絵文字が入った…
- 241 :デフォルトの名無しさん:2015/03/17(火) 13:59:09.21 ID:gpmCn1O6.net
- >>239
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます
ある言語のサブセットを作ってます
- 242 :デフォルトの名無しさん:2015/03/26(木) 19:32:41.80 ID:atSKhz5s.net
- 質問です。以下の、
私家版、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では名前空間の汚染はあまり気にしなくて良いので多用する必要はない」とレスされ、
るそうですが、
なぜ気にしなくて良いのですか?
- 243 :デフォルトの名無しさん:2015/03/26(木) 20:09:27.36 ID:7QpaiPyE.net
- >>242
comon lisp よりも scheme の方がよさそーだ‥
- 244 :デフォルトの名無しさん:2015/03/26(木) 21:35:12.89 ID:RYFxX3Lv.net
- >>242
なんかコイツ自身レベルが低そうだ
- 245 :デフォルトの名無しさん:2015/03/31(火) 15:33:38.54 ID:Wn1BJkY4.net
- 235です。
>>242
それはなぜですか。
もしよければ、意見を聞きたいです。
>>244
え、わたし(235)のこと。それともリンク先を書いた人のこと。
私自身は
ローカルなら他から呼べなくて安全といえるけど、
1つの定義が大きくなってあまり好きじゃないんです。
極端に言えば、
(1つ目の処理 ...)
(2つ目の処理 ...)
(3つ目の処理 ...)
と、書いていって最終的に
(3つ目の〜 (2つ目の〜 (1つ目の〜 ...)))
と、するのが好きなのですが
好き嫌いを超えた優劣や善悪があるのでしょうか。
- 246 :デフォルトの名無しさん:2015/04/03(金) 04:59:16.54 ID:OpTcNNTw.net
- 元スレで作った人に聞けばいいのでは…
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
- 247 :デフォルトの名無しさん:2015/04/04(土) 21:18:43.12 ID:+yfNqqsV.net
- 初歩的な質問ですいません。
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?
- 248 :デフォルトの名無しさん:2015/04/04(土) 21:30:16.17 ID:zaPqarn1.net
- sudo yum install sbcl.x86_64
じゃだめなん?
- 249 :デフォルトの名無しさん:2015/04/08(水) 14:04:17.18 ID:0NyqAI50.net
- Eclipse Common Lisp がオープンソース化された話があるみたいだけど、
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。
- 250 :ドリル優子:2015/04/20(月) 17:48:30.95 ID:pJtoLIOS.net
- これはさすがにヤバイだろww
【神回】美人ニコ生主mAriAがFME切り忘れで公開オナニー!?【電マ】
https://www.youtube.com/watch?v=Y6Fz1MYedSw
- 251 :デフォルトの名無しさん:2015/04/20(月) 17:51:10.30 ID:6c0j1ZNC.net
- >>250
しねかす
- 252 :デフォルトの名無しさん:2015/04/20(月) 18:10:26.32 ID:hAkgH0NHO
- >>250
4ねゴミ
- 253 :デフォルトの名無しさん:2015/04/20(月) 18:27:45.45 ID:BMKjvfkW.net
- こんにちわ、これってどういう場面で使うんでしょうか??
関わりがないってことは特に知る必要ないんでしょうか?
- 254 :デフォルトの名無しさん:2015/05/04(月) 09:54:28.68 ID:1poVLIgC.net
- >>251
だまされるお前が悪い。
クソ動画見てオナニーしてろ
- 255 :デフォルトの名無しさん:2015/05/04(月) 14:43:15.18 ID:wppJPNh0.net
- >>254
うわ!もろに犯罪者の発想だな
「騙される方が悪い」
おまえの人生を彷彿とさせるな
犯罪人生上等君
- 256 :デフォルトの名無しさん:2015/06/05(金) 01:19:51.77 ID:06+5DuOz.net
- http://www.infoq.com/jp/news/2015/06/lispworks-mobile-runtime
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい
- 257 :デフォルトの名無しさん:2015/06/14(日) 21:41:14.46 ID:DbwnGjGJ.net
- clispって5年もバージョンアップないんだね
もう終わりか
- 258 :デフォルトの名無しさん:2015/06/18(木) 21:22:38.22 ID:WKPwU09x.net
- つい最近、lisp始めたんですけど、
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
- 259 :デフォルトの名無しさん:2015/06/19(金) 02:49:41.26 ID:xcKv4OTq.net
- >>258
処理系によって違ってくるから何を使ってるか教えて
- 260 :デフォルトの名無しさん:2015/06/19(金) 12:32:36.15 ID:sjap9hEB.net
- >>259
詳しくは知らないんだけど、
common lispで
format関数使って日本語と文字列を結合しようとするとそのエラーが出ます。
- 261 :デフォルトの名無しさん:2015/06/20(土) 12:18:47.33 ID:hw0FsWHq.net
- windowsのclispでcl-opencvって使えますか?
- 262 :デフォルトの名無しさん:2015/07/06(月) 23:11:46.67 ID:gzHSRIru.net
- 今日から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になれますか。
説教してください。頓首。
- 263 :デフォルトの名無しさん:2015/07/06(月) 23:30:52.25 ID:DLd6IvQj.net
- かっこいいかは知らんけど、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)))
- 264 :254:2015/07/09(木) 18:43:04.87 ID:dOwpf5X7.net
- >>263
おおお。ありがとうございます。
split-sequenceなんてのがあるのですね。
勉強になりました。
- 265 :254:2015/07/10(金) 07:34:53.35 ID:f1nU5bVE.net
- いろいろ参考書を買ったけど、
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
- 266 :デフォルトの名無しさん:2015/07/13(月) 12:29:38.83 ID:mO7PTTVX.net
- あるサイトに
(reduce #'+ '(1 2 3))
;=> 7
6じゃないのですか?
- 267 :デフォルトの名無しさん:2015/07/13(月) 23:25:59.50 ID:RdQReua/.net
- >>266
そのサイトの管理者なりに教えてあげればいいじゃない
- 268 :デフォルトの名無しさん:2015/07/15(水) 02:32:01.68 ID:UqDQ6ToJ.net
- >>266
6だよ‥アスペかよw
- 269 :デフォルトの名無しさん:2015/07/19(日) 21:44:01.49 ID:iFwTTRmf.net
- 最近はcl freaks に出ている人達を中心にcommon lispが元気ある感じするよね
- 270 :名無しのプログラマ:2015/08/09(日) 17:59:36.15 ID:Icb40LOY.net
- 再帰の魅力
- 271 :デフォルトの名無しさん:2015/09/15(火) 00:43:38.55 ID:1sxk5v5N.net
- lispworks proかったった。
買ったからには勉強せねば。
実はまだlispなんにも知らん。
- 272 :はちみつ餃子 ◆8X2XSCHEME :2015/09/15(火) 05:52:09.24 ID:e2MtLkqs.net
- 知らんのにいきなり買うとか豪儀やな
- 273 :デフォルトの名無しさん:2015/09/15(火) 10:02:52.02 ID:qUwxVhtE.net
- ならリスプの統合環境と言っていいか、そこは怪しいが
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな
- 274 :デフォルトの名無しさん:2015/09/22(火) 22:58:08.35 ID:zMYL44aC.net
- (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
とエラーがでます。どうしてなのでしょう?教えてください。
お願いします。
- 275 :デフォルトの名無しさん:2015/09/22(火) 23:17:05.48 ID:52HAR6EJ.net
- スペースが入ってなかったり入っていたり
(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))
- 276 :デフォルトの名無しさん:2015/09/22(火) 23:27:01.08 ID:zMYL44aC.net
- >>275
ありがとうございます。ずいぶん難しいなあと思いました。
コードを整えるためにスペース入れたらエラーなので。
規則はあるのでしょうか?
- 277 :はちみつ餃子 ◆8X2XSCHEME :2015/09/23(水) 01:17:09.38 ID:Z8UtHxkJ.net
- >>276
- や * や = も英数字と同じ扱い。 分けるものがなければつながるというだけ。
=n とあればそれは =n という名前と認識されるし、 1- は 1- という名前。
- 278 :デフォルトの名無しさん:2015/09/23(水) 02:22:31.73 ID:2zCL7K2h.net
- >>277さん
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
- 279 :デフォルトの名無しさん:2015/09/23(水) 02:25:45.54 ID:2zCL7K2h.net
- >>271
30万円くらいですか。すごいですね
- 280 :はちみつ餃子 ◆8X2XSCHEME :2015/09/23(水) 03:31:44.34 ID:Z8UtHxkJ.net
- >>278
> 関数には引数に1-をいれるというオプションのようなものが付く
高階関数のことを言ってるのかな。
そのあたりはどうせ避けて通れないので、
学んでいるうちにわかってくるよ。
- 281 :デフォルトの名無しさん:2015/09/23(水) 08:07:48.78 ID:+YPBfVMM.net
- >>278
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
ですね
- 282 :デフォルトの名無しさん:2015/09/27(日) 22:01:13.24 ID:BTnSG6Xd.net
- windowsでclispとquicklispでcffiを触ってみようと思ったんですが
(cffi:define-foreign-library test
(:windows "test.dll")
(t (:default "test")))
(cffi:use-foreign-library test)
で、testが開けません
パスは正しいし他の言語からもリンクできるライブラリですが、
何処がおかしいのでしょうか?
- 283 :デフォルトの名無しさん:2015/09/29(火) 11:03:45.13 ID:KkwgeqRl.net
- >>279
32bitだからそんなにしないよ。
今とりあえず、いじくりまわぢてる。
- 284 :274:2015/10/01(木) 02:50:50.32 ID:tesABx2F.net
- 自己レスですが、CLISPで散々いろいろ試したけどどうにもならなかったので
SBCLに変えてみたらまともに動くようになりましたので報告
- 285 :デフォルトの名無しさん:2015/10/03(土) 13:14:55.68 ID:IK0Y+UBj.net
- perl の perldoc
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'
- 286 :デフォルトの名無しさん:2015/10/03(土) 13:24:00.92 ID:8AFtPGV4.net
- xyzzy上でで良ければ
reference.xmlから
reference.txtや reference.chm使って補完できるよ
足りない関数名ややシンボル名は静的補完ファイルに登録するか、reference.*に追加するか
- 287 :デフォルトの名無しさん:2015/10/03(土) 13:25:24.46 ID:8AFtPGV4.net
- あ、ヘルプもね
- 288 :デフォルトの名無しさん:2015/10/04(日) 00:50:00.79 ID:FtwpBXng.net
- >>286,279
ひょっとして >285当てか?
後出しになってしまって申し訳ない
cygwin clisp と Linux clisp を使っています
SLIMEの方はそれぞれ NTEmacs と Linuxのaptitude で入る方のemacs
だから aptitude apt-cyg svn git wget などで落としてインストールし
zsh上で pydoc ... 等と同様に呼び出したい
- 289 :デフォルトの名無しさん:2015/10/04(日) 08:39:36.15 ID:QJUtVfl7.net
- >>288
>>285のリンク先(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)))
- 290 :デフォルトの名無しさん:2015/10/04(日) 15:04:33.13 ID:FtwpBXng.net
- >>289
なるほど
ありがとう
これでもう大丈夫になりました
- 291 :282:2015/10/06(火) 16:16:19.87 ID:QezNm1t4.net
- 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.")
- 292 :デフォルトの名無しさん:2015/10/18(日) 00:46:38.25 ID:tKz57RTt.net
- 話題になってないけど、
コンスセル原器が廃止されるらしいぞ
- 293 :デフォルトの名無しさん:2015/10/18(日) 00:53:59.90 ID:evkMpRYg.net
- え?
- 294 :デフォルトの名無しさん:2015/10/18(日) 08:54:54.56 ID:1LMJTfhY.net
- ttps://www.jwz.org/blog/2015/10/cons-conflict-resolved-at-last/
これだね。メートル原器もなくなると言うし、
時代の流れを感じるね
- 295 :デフォルトの名無しさん:2015/10/19(月) 22:17:19.25 ID:v3Pllrwr.net
- コンス原器とか言ってるのはもちろんネタだからな、わかってると思うけど
メートルの定義が科学的なものに置き換えられるから、そのパロディだからな?
- 296 :デフォルトの名無しさん:2015/10/20(火) 12:37:44.25 ID:z0N4BuQy.net
- 原器は力が溢れている。 元気だから。 なんちゃってーー
- 297 :デフォルトの名無しさん:2015/10/21(水) 00:22:44.88 ID:vQvk97RO.net
- 原器があればなんでもできる!
- 298 :デフォルトの名無しさん:2015/10/21(水) 02:26:28.45 ID:FfxQn45L.net
- ネタだったのか
どういうものなんだろうと唸りながら考えていた俺
- 299 :デフォルトの名無しさん:2015/10/21(水) 11:49:26.05 ID:NJ/LNABV.net
- やる気原器いわき的な
- 300 :デフォルトの名無しさん:2015/10/22(木) 09:17:07.87 ID:gRBaWwNT.net
- グレアムの魔道書からではなく
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
- 301 :デフォルトの名無しさん:2015/10/22(木) 23:40:53.70 ID:rUneY+ez.net
- >>281
ありがとうございます。今はじめて>>281さんの書き込みを読みました。
しばらく時間が経ったのでclispのことを忘れてしまいました。
ぼちぼち回復するようにがんばります。
- 302 :デフォルトの名無しさん:2015/10/24(土) 04:48:56.04 ID:sSEtncll.net
- >>300
コードの美しさを感じ取れるといいコードが書けるようになるよ
コードは書くよりも読むほうが、うんと多いから
- 303 :デフォルトの名無しさん:2015/10/26(月) 23:33:50.22 ID:cnZS0lks.net
- >>294
スレ違いなツッコミだがメートル原器はずっと前に基準でなくなっている
最近の話題はキログラムの方だな
- 304 :デフォルトの名無しさん:2015/10/27(火) 04:19:42.73 ID:qSWumRv1.net
- >>302
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。
- 305 :デフォルトの名無しさん:2015/11/12(木) 23:53:54.83 ID:Viwd1W6j.net
- Schemeだとtyped racketとか型つけるのが流行っぽいけどcommon lispも似た感じになってたりします?
- 306 :デフォルトの名無しさん:2015/11/13(金) 13:06:25.41 ID:mBt3iEyA.net
- Haskellは時々仕様が変わるから安心して使えない
- 307 :デフォルトの名無しさん:2015/11/15(日) 22:48:26.04 ID:NgFg0iNO.net
- Arrow-macrosというの見つけた
なんかだ好き
-<> はダイアモンドの杖だって
https://github.com/hipeta/arrow-macros/
http://quickdocs.org/arrow-macros/
- 308 :デフォルトの名無しさん:2015/11/15(日) 22:49:19.75 ID:NgFg0iNO.net
- あ、誤字
なんだか好き
- 309 :デフォルトの名無しさん:2015/11/18(水) 00:22:55.99 ID:D8xoadz9.net
- >>307
うーん、ちょっと使ってみたいけど、
後からワケが分からなくなりそうで不安
- 310 :デフォルトの名無しさん:2015/11/26(木) 00:14:06.33 ID:uCvAjqGD.net
- > 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 を間違えるなよ大違いだろ
- 311 :デフォルトの名無しさん:2015/11/26(木) 20:05:43.69 ID:gXyRUJBd.net
- llvmはフリーなソフトウェアの敵
みたいなことをハッカー界隈の偉い人が言ってなかったっけ?
- 312 :デフォルトの名無しさん:2015/11/27(金) 06:16:02.28 ID:1fwdzPCg.net
- GPL 教団の人だな
- 313 :デフォルトの名無しさん:2015/12/03(木) 01:47:18.74 ID:mCOP4ysm.net
- llvmやjavaなどのgpl教団に狙われやすいcl
Schemeはそんなことないのに
- 314 :デフォルトの名無しさん:2015/12/23(水) 21:05:51.95 ID:83EO6D9Q.net
- 単純な質問なのですが、CommonLispにはリードマクロっていう構文解析機を自分で作れるてきな機能がありますが
これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが
ただ、触った感じ
・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。
・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。
・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった
このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。
OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので
- 315 :デフォルトの名無しさん:2015/12/24(木) 00:08:08.80 ID:SRfs7Doz.net
- >>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
- 316 :デフォルトの名無しさん:2015/12/24(木) 00:09:04.10 ID:SRfs7Doz.net
- 【 オンラインTCGエディター 】 >>1,>>315
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみろ。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。
↓
機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。
↑
下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。
さ〜て、インド人ベンダーと日本人の翻訳担当PGを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1450555747/-20
- 317 :デフォルトの名無しさん:2016/01/23(土) 06:54:59.99 ID:62o9ix/6.net
- こないだ出た common lisp recipes の電子版 ttp://www.apress.com/9781484211779 が2月1日までセールだとか(ダイレクトマーケティング)
- 318 :デフォルトの名無しさん:2016/02/03(水) 08:45:51.54 ID:TXUepsJB.net
- Pypiみたいに誰でもパッケージ登録出来るリポジトリが欲しい
- 319 :デフォルトの名無しさん:2016/02/04(木) 09:00:51.62 ID:cNTyV+6gP
- >>314
そもそも頻繁に使うようなものでもないし、廃れるという表現は違和感ありますな。
使う人は使っているけど、他人に迷惑をかけるかもしれないので、使用する際は注意して自己責任でやってくれと。
- 320 :デフォルトの名無しさん:2016/02/04(木) 09:02:39.44 ID:0n3FRGss.net
- >>314
そもそも頻繁に使うようなものでもないし、廃れるという表現は違和感ありますな。
使う人は使っているけど、他人に迷惑をかけるかもしれないので、使用する際は注意して自己責任でやってくれと。
- 321 :デフォルトの名無しさん:2016/02/20(土) 11:39:04.63 ID:NPEQ4RNb.net
- >>317
実用Common Lisp Kindle版も半額だなあ
翔泳社のKindle本が半額セールなんだとか
- 322 :デフォルトの名無しさん:2016/03/19(土) 19:16:42.97 ID:zF/sbIkf.net
- 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*を使うと出力されるのでしょうか?
- 323 :デフォルトの名無しさん:2016/03/20(日) 18:36:25.23 ID:DDfYHSLd.net
- *standard-output* がスペシャル変数だから、クロージャに参照を閉じ込められないせい。
スペシャル変数は、いわゆる動的スコープになる。
- 324 :313:2016/03/21(月) 08:20:05.67 ID:GwpV/7VW.net
- >>323
なるほどー。そういうことですか。
それで、#.を使うのですね。
ありがとうございます!
- 325 :デフォルトの名無しさん:2016/03/21(月) 08:59:13.60 ID:wDZuq9VI.net
- 実践common lisp みたいな本を書くリスパーが少ないのはなぜなのでしょうか?
リスパーは common lisp をあまり広めたくないということなのでしょうか?
- 326 :デフォルトの名無しさん:2016/03/30(水) 12:55:55.23 ID:7zl3Df3d.net
- 実践common lisp みたいな本を買う人が少ないから
- 327 :デフォルトの名無しさん:2016/03/30(水) 19:31:52.93 ID:O7ZXJNVV.net
- Lispってちょっと勉強でつつく人は多いがガッツリやる人は少ないからね。
- 328 :デフォルトの名無しさん:2016/03/30(水) 20:10:40.09 ID:8q+dx1kL.net
- >>327
にわかLisperの存在が一番Lisp族言語のユーザに迷惑なんだよねぇ orz
haskelとかjs界隈もそうみたいだけど。
良いも悪いも全部ひっくるめてLisp(あるいは言語X)で何かを作ることがすきな人にとっては大迷惑。
- 329 :デフォルトの名無しさん:2016/03/31(木) 01:45:19.30 ID:C1c6UsPS.net
- にわかが居ないのなんて、死んだ分野だけだよ。
成果出してればノイズは気にならないが、どんな迷惑が有るの?
- 330 :デフォルトの名無しさん:2016/03/31(木) 12:32:32.46 ID:7gbN8xHug
- ニワカを排除してたらいつまでたってもボッチというね
ニワカを排除するのではなくて、別のコミュニティに隔離するのがいいよ
そのニワカ達がどんどんニワカを引き連れ、独学や勉強会などで勝手に高め合い、その結果、一部のニワカがガチ勢に昇格する
コミュニティが大きくなってLispを業務で使える機会が増えれば、ガチ勢もうまうまだよ
- 331 :デフォルトの名無しさん:2016/03/31(木) 19:20:58.97 ID:fxztU3O6.net
- >>328
山は裾野が広くないと高くはなれんぞ
お前は挫折したLisperの屍の上に登れ
- 332 :デフォルトの名無しさん:2016/03/31(木) 19:24:02.44 ID:JUFQTQot.net
- 俺の屍を越えてゆけ
- 333 :デフォルトの名無しさん:2016/03/31(木) 20:22:01.85 ID:X8/ytHGi.net
- 俺を踏んでくれ今scheme手習い中だ
- 334 :デフォルトの名無しさん:2016/04/01(金) 12:10:45.45 ID:cNuDUjMS.net
- >>329
scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか
黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う
- 335 :デフォルトの名無しさん:2016/04/01(金) 19:44:05.93 ID:1eTBcwLx.net
- 議論の体でそれぞれのメリット/デメリットを天秤に乗せてるだけで、
罵り合いといというわけではないと思うんだが。
ディベートですらない、茶番だろ。
- 336 :デフォルトの名無しさん:2016/04/02(土) 00:57:27.46 ID:HVYESdUP.net
- Maximaが使えるcl以上の存在はあるのか?
他言語の数式処理は微妙なのしかない
- 337 :デフォルトの名無しさん:2016/04/02(土) 11:14:05.11 ID:H6gllaBZ.net
- sbcl にて,TCP ソケットを使ってプロセス間通信するライブラリを
使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが,
S 式をどうやって送ればよいか分かりません.
S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか?
- 338 :デフォルトの名無しさん:2016/04/02(土) 12:26:41.02 ID:k2fP1WMZ.net
- >>337
S式を丸ごと文字列で投げても良くない?
- 339 :デフォルトの名無しさん:2016/04/02(土) 12:31:05.73 ID:k2fP1WMZ.net
- 追加:
最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね
- 340 :デフォルトの名無しさん:2016/04/02(土) 16:05:25.84 ID:H6gllaBZ.net
- >>338 さんくす.
そっか.データのリストなら (format nil ...) で文字列にすればできますね.
その線でまずはやってみます.
ただ,それだと関数が送れないですね.
FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―.
- 341 :デフォルトの名無しさん:2016/04/02(土) 17:44:40.57 ID:4LcO4yg1.net
- 関数は環境がぞろぞろとくっついてるから、シリアライズは容易でない。
動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか?
- 342 :デフォルトの名無しさん:2016/04/06(水) 23:14:32.62 ID:3jnY8rH1.net
- Windows環境でClozure CLのホームディレクトリは%USERPROFILE%なのでEmacsの起動バッチで
%USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう
何か回避策無いですかね〜。超不便だわ
- 343 :332:2016/04/06(水) 23:18:58.11 ID:3jnY8rH1.net
- ChromeじゃなくてIEを標準ブラウザにしたら動いたw
- 344 :デフォルトの名無しさん:2016/04/06(水) 23:55:35.66 ID:3jnY8rH1.net
- browse-url-generic-programでChromeのフルパス指定してやって一見落着じゃ
LispよりEmacsのがハードル高いわ
- 345 :デフォルトの名無しさん:2016/04/07(木) 00:31:50.58 ID:838jiYpM.net
- 型が緩いhaskellという印象は合ってる?
- 346 :デフォルトの名無しさん:2016/04/07(木) 02:04:56.57 ID:DadLuQug.net
- 離れすぎているからどこが同じでどこが違うとかいうのはいちいち列挙できへんわ。
Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。
でも、やっぱり全然違うわ。
- 347 :デフォルトの名無しさん:2016/04/07(木) 03:12:28.37 ID:69hNyYMv.net
- Haskellでmaxima以上に便利な数式処理ソフトあります?
- 348 :334:2016/04/07(木) 18:56:54.61 ID:ccUxIyvt.net
- バッチの中だけでも%USERPROFILE%を変えるのは副作用が大きすぎて駄目じゃ。
全然、一見落着じゃないやんけ orz
- 349 :デフォルトの名無しさん:2016/04/10(日) 19:23:57.88 ID:vkQXckPD.net
- なぜか関数型ってくくり方でまとめられるときがあるけどまあ全然違うわな。
- 350 :デフォルトの名無しさん:2016/04/14(木) 10:33:43.60 ID:HoZEVK9B.net
- Windowsでスタンドアローンアプリ化するとコンソールアプリになるけど
コンソールウインドウ消す方法はないの?
GUI画面のとき邪魔
- 351 :デフォルトの名無しさん:2016/04/14(木) 12:27:26.25 ID:ahglGqCD.net
- SBCLにはGUIオプションがあった。
他のには無いっぽいな。
このスレには人が居ないんか?
- 352 :デフォルトの名無しさん:2016/04/15(金) 19:54:55.30 ID:pOJBl4dX.net
- 2chがもう廃れてるしな
- 353 :デフォルトの名無しさん:2016/04/15(金) 20:29:42.54 ID:mBIjTfFV.net
- じゃ、何処へ逝ったら良いんだ?
- 354 :デフォルトの名無しさん:2016/04/16(土) 06:15:21.89 ID:dfAX3lgMj
- 逝けば楽になるで
- 355 :デフォルトの名無しさん:2016/04/16(土) 11:26:52.60 ID:8wMWxABn.net
- こうなりゃ昔めんどうみた平手の造酒んとこでも行くか
- 356 :デフォルトの名無しさん:2016/04/16(土) 13:27:14.87 ID:bPs+CkgD.net
- 初心者でLisp全然まだ分かってなくて、本を読みながら色々実験しているんだけど、
socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。
:external-formatとかいろいろ試したけどダメだった。
結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの?
それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか?
でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。
replで実験しながらできるのがいいね。
- 357 :デフォルトの名無しさん:2016/04/16(土) 16:36:43.09 ID:MGs6Ga+C.net
- >>356
文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。
- 358 :デフォルトの名無しさん:2016/04/17(日) 21:44:33.74 ID:goQ5YOot.net
- 割と取っ付きやすい言語だと思うんだけどね〜。
- 359 :デフォルトの名無しさん:2016/04/18(月) 12:23:07.50 ID:6QlHoC4+.net
- slime必須な開発環境がネックかもね
まあLispBoxまんま使えば良いけど
- 360 :デフォルトの名無しさん:2016/04/24(日) 22:39:11.27 ID:scaRHXPI.net
- emacsが嫌いでもAtom-Slimeあるぞ!
- 361 :デフォルトの名無しさん:2016/04/25(月) 09:16:48.45 ID:W8v031Mp.net
- >>360
そんなんあるんかー
- 362 :デフォルトの名無しさん:2016/05/01(日) 15:18:51.08 ID:tKi6j9CT.net
- 匿名通信(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的に分散され、特定のサーバーに依存しません
;
- 363 :デフォルトの名無しさん:2016/05/16(月) 08:34:14.29 ID:fo7lQzzV.net
- closによるオブジェクト指向を勉強している最中だけど、Javaやc++と違って、プライベートな変数や関数とかないの?
そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの?
- 364 :デフォルトの名無しさん:2016/05/16(月) 21:45:38.72 ID:jtYky004.net
- パッケージとか言ってみる
- 365 :デフォルトの名無しさん:2016/05/19(木) 02:07:18.56 ID:jTIEwZO7.net
- closは実行時になんでも弄れる仕組みになっているので隠してもしょうがない
その代わりJavaやC++とは比較にならないほど動的
お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益
(定義時に存在しないクラスのスロットをごにょごにょするなど)
- 366 :デフォルトの名無しさん:2016/05/19(木) 04:03:53.01 ID:lKV7/eW/.net
- > 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
> 「どんなに汚くても、打てる手段がある」というのは 何物にも替え難い救いなのです。
- 367 :デフォルトの名無しさん:2016/05/20(金) 13:08:49.10 ID:JbHmc+E3.net
- EmacsにはCLOSエミュのeieioがあるけどそれだとプライベートメンバーが作れる
当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど
うっかり触る事は出来なくなる
(slot-valueでアクセス出来なくなるとかsetfで書き込めないとか)
- 368 :デフォルトの名無しさん:2016/05/23(月) 01:28:42.95 ID:wfdlAGNm.net
- >> 355
eieioのそれほんとに機能してる?
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00402.html
closならmopで実装だろうね
- 369 :356:2016/05/23(月) 18:45:02.73 ID:sxSKeUhG.net
- >>368
ちゃんと機能してるよ
:reader :accessor 経由だとどこでもアクセス出来る
それらを定義しないで slot-value 経由でアクセスすると
定義された class 用の defmedhod 内じゃないとエラーになる
- 370 :356:2016/05/23(月) 18:54:51.46 ID:sxSKeUhG.net
- >>369は間違えた
slot-value 経由でも defmethod 内ならどんな class 用のでもアクセス出来ちゃってた…
>>368のリンク先の通りだった
もしかしたら次のバージョンなら直ってるのかもしれない
- 371 :デフォルトの名無しさん:2016/06/23(木) 23:59:50.36 ID:G+YERTIa.net
- Common Lispの規格を進化させようと日本人が頑張ってるサイトがあった気がしたけど全く見つからない
教えてくれ
- 372 :デフォルトの名無しさん:2016/06/24(金) 00:22:49.85 ID:RDdMjpj7.net
- 身も蓋もないけど
コモン規格なんだから
枯れてた方が良いんじゃねーの
- 373 :デフォルトの名無しさん:2016/06/24(金) 12:20:42.94 ID:Iu+HWWVT.net
- もっと太らせる気なのか
今でも巨デブなのに
- 374 :デフォルトの名無しさん:2016/06/24(金) 15:11:04.73 ID:RDdMjpj7.net
- この機能が足りないって思ったら
ライブラリ提供すればいいんだよ
規格を変えるってのは
よほど説得力がないと難しい
- 375 :360:2016/06/24(金) 15:12:24.11 ID:64NOMHgE.net
- Common Lispのこの関数はこうすべきだったとか色々書いてて面白かったが
ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる…
もう少し探してみるよ
slideshareだったかな…
- 376 :360:2016/06/24(金) 16:07:31.75 ID:64NOMHgE.net
- http://www.slideshare.net/fukamachi/redesigning-common-lisp
これだった
日本語で一生懸命検索してたからそりゃ出てこないわけだ…お騒がせしました
- 377 :デフォルトの名無しさん:2016/06/24(金) 16:41:47.94 ID:YpPFayvt.net
- CommonLisp好きだけど未だに関数をfuncallで呼ばないとイケナイ名前空間の扱いだけは理解できない。
なんで分けたんだろうって解説どこかにないかな?
- 378 :デフォルトの名無しさん:2016/06/24(金) 17:42:01.98 ID:t8u1m238.net
- >>376
ああ、CL21 の人のか。
- 379 :デフォルトの名無しさん:2016/06/24(金) 20:04:29.17 ID:hXccTKlm.net
- >>377
物事をカテゴライズして名前空間分けたいってニーズは別に変じゃない。
そういうの他の言語でもあるよね。
察するに言語設計者自信がその時偶々欲しかったのが入っちゃうんじないかな?
- 380 :デフォルトの名無しさん:2016/06/24(金) 20:25:53.91 ID:d6du9t53.net
- 動詞と名詞を兼ねる単語が多すぎる英語にそもそもの問題があるやも
list然りmap然り
- 381 :デフォルトの名無しさん:2016/07/01(金) 20:10:20.19 ID:yQsAPI3T.net
- 質問だけどAllegro CLで実行ファイルを作成するとサイズはどれぐらいになる?
SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので
- 382 :デフォルトの名無しさん:2016/07/02(土) 12:59:00.03 ID:OqC3vtTc.net
- よく見たらAllegroで実行ファイルを作成出来るのはEnterprise版以上だった
そもそもEnterprise版を使った人がいなさそうだな…
- 383 :デフォルトの名無しさん:2016/07/02(土) 17:34:13.78 ID:FM4LazWe.net
- それは、「お前ら貧乏人ばかりだな」と言ってるのと同じだな。
- 384 :デフォルトの名無しさん:2016/07/02(土) 17:43:37.01 ID:wOG82f10.net
- >>383
いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw
つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの?
- 385 :デフォルトの名無しさん:2016/07/03(日) 12:32:44.64 ID:i88MiToD.net
- 数理システムだと社内で使ってるんじゃないの
中の人はこのスレ見てないか
- 386 :デフォルトの名無しさん:2016/07/03(日) 21:01:01.25 ID:yj3P75/T.net
- Professionalだと6万ぐらいだから個人でも買えなくもないけど
Enterpriseはいくらすんだろ?
数十万はしそうだけど仕事で使うんなら払える額でもあるな
- 387 :デフォルトの名無しさん:2016/07/03(日) 22:27:03.67 ID:ZjY2/t9+.net
- >>386
まじ6万?!
Lispworksより安いような。
- 388 :デフォルトの名無しさん:2016/07/03(日) 23:13:52.65 ID:nqVZhyDy.net
- >>387
Professinal版って32ビット版しかないかじゃないか?
- 389 :デフォルトの名無しさん:2016/07/04(月) 14:40:11.42 ID:k9kiUpvM.net
- LispWorksの実行ファイル書き出しは最小で6.5-7.5MBぐらいからみたいだからかなりいいな
けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし…
- 390 :デフォルトの名無しさん:2016/07/05(火) 02:57:14.28 ID:HX6TWKu0.net
- ECLは?
- 391 :デフォルトの名無しさん:2016/07/06(水) 15:08:51.31 ID:3m0XVVXB.net
- ECL使った事ないけど実行ファイルを作成したら普通にC言語で作ったぐらいのサイズになるんだろうね
あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな
- 392 :デフォルトの名無しさん:2016/07/12(火) 23:20:50.64 ID:CyKbMfvi.net
- Common Lispの処理系がわざとバグを入れてmaximaが動かなくなるように仕向けてるようなのを見つけたのだけど
Abclとclispはgnome3と同じ状態になってる?
- 393 :デフォルトの名無しさん:2016/07/13(水) 04:54:37.74 ID:4HQ8M+Y/.net
- maximaは主に古い仕様のcommonlispで動く
処理系が古い仕様のサポートをやめることをmaxima切り捨ての陰謀とするなら
そうなんじゃないの
maximaが合せるのが筋だろ
- 394 :デフォルトの名無しさん:2016/07/13(水) 05:14:45.73 ID:7U1J32do.net
- 互換性を保てないならcommonなんて名乗らないでほしい
- 395 :デフォルトの名無しさん:2016/07/13(水) 10:56:35.33 ID:/T6M1MVl.net
- Commune Lisp
- 396 :デフォルトの名無しさん:2016/07/13(水) 15:43:05.70 ID:xtHEpCPd.net
- gommen lisp
- 397 :デフォルトの名無しさん:2016/07/13(水) 22:43:00.43 ID:Fcdf94Kw.net
- sourceforgeが死んでてMaximaのサイトにアクセス出来んぞ…
SBCLのサイトにもアクセス出来ないしCL界隈はsourceforgeに依存してるとこが多いな
- 398 :デフォルトの名無しさん:2016/07/13(水) 22:49:06.02 ID:/T6M1MVl.net
- アドウェア配布サイトに依存するとはいかんな
- 399 :デフォルトの名無しさん:2016/08/12(金) 21:39:14.20 ID:duu5cHW/.net
- フリーソフト作る目的でAllegro CLのAcademic版のEnterprise版買った方いませんか?
非商用目的で64bit版の実行ファイルを作れるとなると、Enterprise版でAcademic版を買うのがよいのかなと。
(そもそも、条件にマッチしてるかわかってないですが)
Academic版ならEnterpriseでも意外にお手頃価格で買えたりしないかな?
そういえば、Allegro CLの日本代理店って撤退したんですかね?
HPが消えてるのか、アクセスできないですね。
- 400 :デフォルトの名無しさん:2016/08/13(土) 20:37:11.64 ID:moPmKDp5.net
- >>399
Allegroはなぁ、ネタに値段書いていない銀座の寿司屋のイメージが
- 401 :デフォルトの名無しさん:2016/08/24(水) 21:29:45.05 ID:9kP9ZOpP.net
- 何千桁もあるbignumを適当な所に小数点を打ったり10桁毎にスペースを入れたり
100桁毎に改行して表示したいけど、formatでやる方法があったら教えてくれ
- 402 :デフォルトの名無しさん:2016/08/25(木) 00:53:05.88 ID:zjrUiCsA.net
- >> 390
ない.
調べるよりプログラム書いた方がはやい.loopマクロで5行位で書ける.
どうしてもformatつかうなら自分で書いてformatの~/で呼べば?
- 403 :デフォルトの名無しさん:2016/08/25(木) 09:19:55.78 ID:1bKygDuA.net
- >>401
(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
- 404 :390:2016/08/25(木) 13:02:06.57 ID:fbmJygYr.net
- 返答どうも!
>>402
formatのドキュメント見ても無さそうだったから聞いてみたけど、やっぱりないんだね…
素直にloopでやることにする
>>403
そうか、カンマをスペースにすれば10桁区切りは出来るのか
100桁目を改行に出来れば最高だが、あまり大きくないbignumならこれで十分か
とりあえずありがとう
- 405 :デフォルトの名無しさん:2016/08/25(木) 14:33:57.04 ID:6zcPyAfh.net
- 学習用にC++で書いた楕円曲線暗号のデバッグの時にBignum何度も目視したの思い出してちと鬱が入るなぁ
- 406 :デフォルトの名無しさん:2016/09/13(火) 11:41:49.02 ID:J1eBbaIT.net
- 日本人コモンリスパーで有名な人って誰?
竹内センセーと苫米地ハカセ以外で!
- 407 :デフォルトの名無しさん:2016/09/13(火) 22:25:28.74 ID:8U9RmJUe.net
- 竹内センセーと苫米地ハカセは国際コモンリスパーとしての認知度は低いヨ
もちろんtakの竹内センセーは知られているけどコモンリスパーじゃないネ
トマベチ? ダレ?
fukamachi ,kuroda は広く知られているヨ
- 408 :デフォルトの名無しさん:2016/09/14(水) 07:54:21.71 ID:JzjCbHsO.net
- 国内の知名度ではドクター苫米地が圧倒的だろう
- 409 :デフォルトの名無しさん:2016/09/22(木) 11:55:47.84 ID:svLBF04r.net
- 何がまずいのかわからん。
誰か教えて。
(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
- 410 :デフォルトの名無しさん:2016/09/22(木) 12:41:06.30 ID:Q0XXtJDC.net
- >>409
(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
- 411 :デフォルトの名無しさん:2016/09/22(木) 14:56:41.64 ID:svLBF04r.net
- >>410
動きました。
ありがとうございます。
- 412 :デフォルトの名無しさん:2016/09/23(金) 21:24:52.87 ID:CYp0vnmU.net
- Scheme 系だと
(define (f x) (* x 2))
(define (g y z) (y z))
(g f 3)
6
って書けるんだね。
- 413 :デフォルトの名無しさん:2016/09/23(金) 21:27:52.82 ID:y9ZJGzw+.net
- へ〜
- 414 :デフォルトの名無しさん:2016/09/24(土) 05:38:26.18 ID:nvb+KqdK.net
- 関数型のブームは来てるけど
HaskellとかScalaに押されてない?
- 415 :デフォルトの名無しさん:2016/09/24(土) 08:10:52.77 ID:VAyZ/8kj.net
- GNU makeやgdbにguileがリンクされるようになったよ
もう少しの辛抱や
- 416 :デフォルトの名無しさん:2016/09/24(土) 17:22:03.97 ID:ryMydsM5.net
- Common Lispはマルチパラダイムの言語だ
goto(go)すら存在する
- 417 :デフォルトの名無しさん:2016/09/25(日) 21:24:57.99 ID:HvtwLO9L.net
- >>416
goはマッカーシーのlispからあるけどお。すらってなにい?
- 418 :デフォルトの名無しさん:2016/09/25(日) 22:23:20.95 ID:eD42xPoY.net
- すらまっぱぎ
- 419 :デフォルトの名無しさん:2016/09/26(月) 15:46:42.52 ID:b0MmmDW8.net
- >>417
Common LispのスレでCommon Lispと言って何か問題あるか?
- 420 :デフォルトの名無しさん:2016/10/05(水) 23:25:20.08 ID:C9cv9Gl5.net
- >>377
Steeleが互換性考えて別にしたけど
やっぱり一緒にしとけばよかったーと後に述懐していた
- 421 :デフォルトの名無しさん:2016/10/12(水) 15:59:00.20 ID:RYqLfx9/.net
- その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
- 422 :デフォルトの名無しさん:2016/10/12(水) 16:33:55.36 ID:8kMwO8W7.net
- 今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。
- 423 :デフォルトの名無しさん:2016/10/12(水) 16:34:06.22 ID:M1jDwzz2.net
- #fと'()の分離はなんでだったんや?
- 424 :デフォルトの名無しさん:2016/10/12(水) 17:40:21.14 ID:RYqLfx9/.net
- それはSchemeスレでする話だな
- 425 :デフォルトの名無しさん:2016/10/13(木) 20:07:13.89 ID:xgGYMiuu.net
- 0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
- 426 :デフォルトの名無しさん:2016/10/13(木) 22:52:04.77 ID:C1I1uhJH.net
- いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。
- 427 :デフォルトの名無しさん:2016/10/15(土) 20:05:40.07 ID:HnVxap0b.net
- デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。
- 428 :デフォルトの名無しさん:2016/10/16(日) 18:14:50.68 ID:r9fJMQJL.net
- ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
- 429 :デフォルトの名無しさん:2016/10/16(日) 18:17:07.36 ID:r9fJMQJL.net
- >>428の書き込みの訂正
LEPLじゃなくてREPLです。
- 430 :デフォルトの名無しさん:2016/10/16(日) 21:52:46.83 ID:8ptZ6tcn.net
- うちは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
- 431 :デフォルトの名無しさん:2016/10/17(月) 00:33:48.91 ID:sDQTJcTS.net
- >>430
おおおお
出来ました!!!
サンプルプログラムまで書いていただきありがとうございます。
Lispを初めて日が浅いのですが、とても分かりやすかったです。
- 432 :デフォルトの名無しさん:2016/10/17(月) 09:04:24.02 ID:QD9IQMc+.net
- clisp の場合は
clisp a.lisp
という風にファイル名を指定するだけでも実行できるよ
この場合REPLとは異なり、特に何もしなくても自動的に終了する
sbcl には同様のことをする --script オプションがある
- 433 :デフォルトの名無しさん:2016/10/17(月) 10:07:13.56 ID:sDQTJcTS.net
- >>432
なるほど、そういう方法もあるんですね。参考になります。
- 434 :デフォルトの名無しさん:2016/10/18(火) 11:30:07.17 ID:1ksiQ1k/.net
- 多分emacsでSLIME使うのが一番捗る。ある程度やって、もっと環境良くしたいと思ったら導入してみるといい
ファイルに書きなぐって一部だけ評価するとかできる
- 435 :デフォルトの名無しさん:2016/10/23(日) 13:47:10.52 ID:crofOT9u.net
- (defparameter param #\a)
を生成するマクロ
(defmacro ch! (ch)
`(defparameter param #\,ch))
が、動かないのはなぜでしょうか?
教えて下さい。
- 436 :デフォルトの名無しさん:2016/10/25(火) 08:55:35.68 ID:dAAkpCke.net
- 424です。
どなたか、教えてください。
- 437 :デフォルトの名無しさん:2016/10/25(火) 23:40:26.35 ID:NdRXRry8.net
- 入力マクロを何と心得ておる
- 438 :デフォルトの名無しさん:2016/10/26(水) 01:17:49.11 ID:Z8ZLd5j0.net
- >>436
面白い。426のいうとおり
リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。
(defmacro ch! (ch)
(read-from-string (format nil
- 439 :デフォルトの名無しさん:2016/11/01(火) 15:37:56.06 ID:d/Emm7ZQ.net
- 424です。
>>437
ご返答ありがとうございます。
「入力マクロを何と心得ておる」
リードマクロの事でしたら不勉強でした。
1文字づつ地を這う様なカスタマイズに思えて
lispっぽさが感じられず読む気が無くなるんです。
>>438
書きかけの続きを
ぜひ読みたいです。おねがいします。
macbookのOSX10.6で
iterm上のvimで選択したS式をscreenを介して
もう一つのitermで動くsbcl(又はclisp)に評価、
出力させるのを目標にしています。
なにか知っている事があればよろしくおねがいします。
- 440 :デフォルトの名無しさん:2016/11/02(水) 05:41:35.19 ID:ydCUsA37.net
- >>439
割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/)
vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない)
つかLisperならEmacsと心中するのが吉
#って感じなEmacsと入水心中の俺 orz
#Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ
- 441 :デフォルトの名無しさん:2016/11/02(水) 16:50:18.95 ID:Zl1DvHRz.net
- SLIMEっぽいのは一応あるのね
http://www.vim.org/scripts/script.php?script_id=2531
- 442 :デフォルトの名無しさん:2016/11/22(火) 20:43:31.30 ID:KvJ3xe8B.net
- 独り言だが
ClojureとClozure CLってべつものなのか
Clozure CLはjava関係ないのね
- 443 :デフォルトの名無しさん:2016/12/18(日) 08:12:54.17 ID:H5VGjwqC.net
- conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか?
simple-conditinとかにはあるのに
- 444 :デフォルトの名無しさん:2016/12/18(日) 15:52:29.97 ID:odpeYpuF.net
- 多重継承だから
- 445 :デフォルトの名無しさん:2017/01/11(水) 12:56:06.91 ID:Dj+amy8+.net
- 生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?
ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。
- 446 :デフォルトの名無しさん:2017/01/11(水) 13:08:56.90 ID:oS3M3jOK.net
- Win機で開発するのが間違ってる
- 447 :デフォルトの名無しさん:2017/01/11(水) 13:41:55.71 ID:CpReZJmf.net
- 『プログラムの保存』とは一体……?
- 448 :デフォルトの名無しさん:2017/01/11(水) 17:25:20.73 ID:cn/qBmTu.net
- BASICのSAVEか…
- 449 :デフォルトの名無しさん:2017/01/11(水) 22:14:49.39 ID:qtQ06epR.net
- >>448
えっ ちょっと待って
今ラジカセ用意するから...間違えてLOADって打たないでね
- 450 :デフォルトの名無しさん:2017/01/11(水) 22:20:44.82 ID:LKP7w0Oz.net
- www
- 451 :デフォルトの名無しさん:2017/01/12(木) 00:33:15.10 ID:ON8wOxBk.net
- >>447
RPLだと関数も変数も必ずファイルとして存在する。
RPLの祖先のForthも同じかもしれない。
- 452 :デフォルトの名無しさん:2017/01/12(木) 06:54:05.10 ID:pNuRGDWl.net
- ほしいのは、emacs+slime環境?
あるいはaclとかlispworks
- 453 :デフォルトの名無しさん:2017/01/12(木) 09:59:06.51 ID:wWrcziVQ.net
- REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い
- 454 :デフォルトの名無しさん:2017/01/12(木) 10:32:26.76 ID:UNGksYU7.net
- >>453
emacs環境だとLispよりもemacsの勉強になってしまうからなあ
- 455 :デフォルトの名無しさん:2017/01/12(木) 13:02:34.77 ID:bT7YUbCB.net
- それならlemでいいんじゃない?
- 456 :デフォルトの名無しさん:2017/01/12(木) 21:49:43.62 ID:42JGZ5hK.net
- xyzzyで
- 457 :デフォルトの名無しさん:2017/01/13(金) 04:08:54.48 ID:BzdeAQwY.net
- >>453
>>454
同意、最初からEmacsは難しすぎる
LispよりEmacsの方が難しいくらい
- 458 :デフォルトの名無しさん:2017/01/13(金) 11:27:29.66 ID:QaVc2fKW.net
- clispの開発が終わってしまったし
- 459 :デフォルトの名無しさん:2017/01/13(金) 11:29:56.98 ID:QaVc2fKW.net
- >>453
emacsのlispってemacsのカスタマイズ用途なのでは?
アプリ作成用のlispがまだあるのかどうかは知らないが
- 460 :デフォルトの名無しさん:2017/01/16(月) 16:21:04.42 ID:qEdXmsgN.net
- >>458
その情報のソースってどこかにある?
CLISP自体かなり前から更新されてなかったから終わったと言っても今更感があるけど…
- 461 :デフォルトの名無しさん:2017/01/17(火) 11:28:47.60 ID:sDlYunh0.net
- >>460
長年更新していないので、オワタ可能性は高くね?
- 462 :デフォルトの名無しさん:2017/01/18(水) 14:32:40.83 ID:+0XE4PkH.net
- Lispの仕事ってまだあるのだろうか?
古いシステムの保守程度?
- 463 :デフォルトの名無しさん:2017/01/18(水) 23:04:07.71 ID:JFSfmo96.net
- どっかの会社で、common lispでやっているところがあったはず
完全に廃れた感じはしないな
- 464 :デフォルトの名無しさん:2017/01/19(木) 09:03:33.76 ID:Gh/NlR3g.net
- >>463
どんな仕事なんだろう?
- 465 :デフォルトの名無しさん:2017/01/19(木) 09:38:33.97 ID:uhfgjGGl.net
- https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
- 466 :デフォルトの名無しさん:2017/01/19(木) 12:17:01.00 ID:TbaqbQZk.net
- Lispと言えば、研究用途かWebサーバーで使うようなイメージしかないわ
- 467 :デフォルトの名無しさん:2017/01/19(木) 21:19:55.80 ID:gCwd8P05.net
- お前の抱えるイメージなんかに誰か興味を持つと思ったのか?
- 468 :デフォルトの名無しさん:2017/01/20(金) 00:42:56.98 ID:rsnxDR2c.net
- >>467
でも実際に何に使われているんだ?
研究専用言語だと思っていたのだが。
- 469 :デフォルトの名無しさん:2017/01/20(金) 10:12:07.41 ID:Nvso2zBq.net
- >>467 みたいなBOTに使われているという実例
- 470 :デフォルトの名無しさん:2017/01/20(金) 11:53:33.16 ID:coMO3q54.net
- LispはUNIX以外で実用的に使うのは無理なのかねえ?
- 471 :デフォルトの名無しさん:2017/01/20(金) 12:28:28.14 ID:SVUCN/eR.net
- スレチだからlisp scheme スレでやれよ
http://echo.2ch.net/test/read.cgi/tech/1426481152
もっと釣れるぞ
- 472 :デフォルトの名無しさん:2017/01/20(金) 12:48:36.11 ID:8z9BkdPJ.net
- Lisp はWebサーバ用の言語
- 473 :デフォルトの名無しさん:2017/01/20(金) 19:20:31.02 ID:XUVXYG0t.net
- lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど
- 474 :デフォルトの名無しさん:2017/01/21(土) 06:13:30.03 ID:mYUPWk0d.net
- >>470
っhttps://www.amazon.co.jp/dp/4274065979/
- 475 :デフォルトの名無しさん:2017/01/21(土) 11:57:50.59 ID:0dQCqgGa.net
- >>474
そんな読み物で何が分かるんだ?
- 476 :デフォルトの名無しさん:2017/01/21(土) 16:17:15.46 ID:UaDisbHg.net
- roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない
こんな糞アプリ使えるかよ
- 477 :デフォルトの名無しさん:2017/01/21(土) 16:57:44.64 ID:QA6O+rWe.net
- ここで聞いてももう駄目
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い
- 478 :デフォルトの名無しさん:2017/01/21(土) 19:07:36.86 ID:1H01QVS7.net
- ttps://github.com/roswell/roswell の Installing scripts に
$ ros install fukamachi/qlot # will install it from the GitHub
って書いてあるけど知りたいのはこれじゃないってこと?
- 479 :デフォルトの名無しさん:2017/01/22(日) 10:57:47.88 ID:b2xXmV6K.net
- >>415
言語組み込み解禁で誰かがluaに変えると予想
- 480 :デフォルトの名無しさん:2017/01/29(日) 02:04:07.29 ID:jpDTpmEM.net
- Land of lispの動画見て来ますた
- 481 :デフォルトの名無しさん:2017/01/29(日) 22:21:22.72 ID:QjLLrAQA.net
- >>480
いらっしゃーい
- 482 :デフォルトの名無しさん:2017/01/30(月) 02:40:54.54 ID:mBiYg09G.net
- >>480
あの動画楽しいよね。
- 483 :デフォルトの名無しさん:2017/02/01(水) 13:13:45.46 ID:uPNpYJZg.net
- わかる人いたら教えて下さい。
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と入力するといつも通り起動します。
- 484 :デフォルトの名無しさん:2017/02/03(金) 00:03:57.75 ID:uSnzwgyQ.net
- コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか?
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない
- 485 :デフォルトの名無しさん:2017/04/05(水) 00:10:33.71 ID:dD5KS/CH.net
- Common lispからpythonの特にnumpy関係のライブラリ使う方法ないのでしょうか?
- 486 :デフォルトの名無しさん:2017/04/05(水) 03:18:41.90 ID:9ywW0Xq5.net
- >>485
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?
- 487 :デフォルトの名無しさん:2017/04/08(土) 15:56:08.90 ID:Uc8a2Yv6.net
- Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ
Sparse matrix計算も出来ないみたいだし
- 488 :デフォルトの名無しさん:2017/05/03(水) 04:46:48.46 ID:94GhuONY.net
- Cのプログラムがcuda使うと100倍速くなるのに
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?
- 489 :デフォルトの名無しさん:2017/05/09(火) 20:10:22.37 ID:v4p9YapF.net
- >>488
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う
- 490 :デフォルトの名無しさん:2017/05/09(火) 20:19:48.11 ID:v4p9YapF.net
- >>487
密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。
疎行列なら現状ラッパーが多分ないのでCFFIでcuSPARSEへのバインディングを書こう。
全結合のディープラーニングならMGLでCommon Lispのみでできる。
PythonのClojureライクなLisp方言ならHy(hylang)がある。
Pythonのライブラリが直接使いたいならこれを使えばいい。
- 491 :デフォルトの名無しさん:2017/05/19(金) 19:45:50.96 ID:N5yG+fmp.net
- 初心者です ハマってしまったので助けて下さい!
ファイルを読み込んで 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))))))
- 492 :デフォルトの名無しさん:2017/05/19(金) 21:20:45.65 ID:/bO1sGez.net
- 引数が評価されてないね
- 493 :デフォルトの名無しさん:2017/05/19(金) 21:49:23.53 ID:/bO1sGez.net
- >>491
macroexpand で展開してみた?
- 494 :デフォルトの名無しさん:2017/05/19(金) 21:58:39.33 ID:N5yG+fmp.net
- >>493
concatenateの方はエラーがでます
普通に文字列を渡せばうまくいくのですが
- 495 :デフォルトの名無しさん:2017/05/20(土) 00:30:38.53 ID:ZKXptbMB.net
- >>491
どうしてマクロにしたの?初心者だから?
- 496 :デフォルトの名無しさん:2017/05/20(土) 01:15:39.37 ID:I6lRK30f.net
- >>495
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
- 497 :デフォルトの名無しさん:2017/05/20(土) 01:30:33.54 ID:I6lRK30f.net
- 問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
- 498 :デフォルトの名無しさん:2017/05/21(日) 06:36:36.81 ID:oB72Q+Da.net
- OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ
- 499 :デフォルトの名無しさん:2017/05/21(日) 06:50:43.54 ID:oB72Q+Da.net
- typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?
- 500 :デフォルトの名無しさん:2017/05/21(日) 19:45:11.09 ID:jy5dosQP.net
- >>499
common lispのコンパイラでも型推論くらいするの知ってるか?
それがどう駄目なのか,どうしたいのかをまず書けよ.
- 501 :デフォルトの名無しさん:2017/05/22(月) 06:10:33.21 ID:Suxf7jk2.net
- sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った
- 502 :デフォルトの名無しさん:2017/05/22(月) 19:06:44.55 ID:cqwt5c+d.net
- sbclのdescribeで
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
- 503 :デフォルトの名無しさん:2017/05/25(木) 21:17:35.11 ID:1hi1bgKK.net
- >>501
> sbclのtheのdescribe
が意味するところが分からない.
- 504 :デフォルトの名無しさん:2017/05/31(水) 17:40:47.18 ID:PPe5oyts.net
- Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか
c言語の解析するサンプルコードなら他のでも良いです
- 505 :デフォルトの名無しさん:2017/07/09(日) 02:25:04.88 ID:ryDnV29I.net
- 誰か知っていれば教えてほしいのですが
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
- 506 :デフォルトの名無しさん:2017/11/08(水) 02:39:25.32 ID:Uoqj8nW+.net
- TEST
- 507 :デフォルトの名無しさん:2017/12/06(水) 00:55:26.32 ID:eBsnaSfJ.net
- テスト
- 508 :デフォルトの名無しさん:2018/02/16(金) 05:55:09.54 ID:W1XJdyx1.net
- ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
- 509 :デフォルトの名無しさん:2018/05/23(水) 21:07:30.15 ID:Au5e7VGg.net
- 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HSR58
- 510 :sage:2018/06/08(金) 07:24:37.45 ID:j+JfgiN4.net
- ところでlabelsって関数の名前の由来って何?
しっくりこない
- 511 :デフォルトの名無しさん:2018/06/17(日) 11:25:32.22 ID:eEWfV0tw.net
- >>488
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
- 512 :デフォルトの名無しさん:2018/06/19(火) 02:22:17.89 ID:q+1hh2rS.net
- >>511
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
- 513 :デフォルトの名無しさん:2018/07/04(水) 22:29:25.87 ID:gFgZc5FG.net
- V3Z
- 514 :デフォルトの名無しさん:2018/07/05(木) 16:53:25.50 ID:AeL6VB/V.net
- V3Z
- 515 :デフォルトの名無しさん:2018/07/13(金) 17:19:54.02 ID:EPDxLdrK.net
- こないだ迄Windows10の64bit版ではDEPの絡みで動かないと思ってた、SBCL版のMaximaが、
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。
うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?
- 516 :504:2018/07/13(金) 17:28:05.78 ID:EPDxLdrK.net
- SBCL自体を別途インストールしたのが効いてるのかも知れないなぁ…。
- 517 :デフォルトの名無しさん:2018/09/11(火) 03:59:06.82 ID:u3nXUIwD.net
- Lispってwebフレームワークありますか?
一通りの機能のあるブログを作ったり出来るような
- 518 :デフォルトの名無しさん:2018/10/03(水) 18:50:06.50 ID:1GTVcIse.net
- 質問です。
Lispで書かれたLisp処理系はありますか?
- 519 :デフォルトの名無しさん:2018/11/03(土) 15:30:34.57 ID:3XdSQ+AZ.net
- 中学卒業までにコモンリスプ極める!
- 520 :デフォルトの名無しさん:2018/11/14(水) 08:37:19.93 ID:gqSz/09F.net
- roswellについての質問なんですが
ros init ファイル名
としたときできるファイルの中身の
(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)
って何ですか?
(ros:ensure-asdf)特にこれ
- 521 :デフォルトの名無しさん:2018/11/17(土) 00:21:41.91 ID:eQWBxdMf.net
- >>520
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?
- 522 :デフォルトの名無しさん:2018/11/17(土) 13:04:03.08 ID:U2so6ckSW
- ensureが付くんだから、asdfが無いときはasdfをどこかから調達するなどして、
とにかく何が何でもasdfを読み込もうとしてるんやろ。
例えばensure-directoryという関数があって、これは指定したディレクトリがファイルシステム上に存在するならそれを返し、
無かったらそれを新造して返してくれる。
他にもライブラリのalexandriaにeunsure-gethashというgethashの便利版というべき関数があって
これにハッシュテーブルとキーとデフォルト値を与えると、
ハッシュテーブル上にキーが存在するときはキーに対応する値を返して、
存在しなかった場合はハッシュテーブルにキーとデフォルト値を登録してデフォルト値を返してくる。
- 523 :デフォルトの名無しさん:2018/11/19(月) 01:45:50.04 ID:cfbwkb+WA
- あ、ensure-directoryじゃなくてensure-directories-exist だ。
- 524 :デフォルトの名無しさん:2018/12/02(日) 12:23:45.12 ID:KPiqRYEn.net
- お前だれよ
- 525 :デフォルトの名無しさん:2019/01/08(火) 13:36:34.22 ID:n4V6aMpj.net
- Common LispからC言語のモジュールを呼ぶ方法は簡単に見つかるのですが
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?
- 526 :デフォルトの名無しさん:2019/01/08(火) 18:04:16.67 ID:kGjsEUq7.net
- >>525
ただ別プロセスで処理系を起こして、そこの 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
- 527 :デフォルトの名無しさん:2019/01/13(日) 15:30:06.78 ID:awaCdOlx.net
- Lispでグラフィカルにステップ実行できる方法ってEmacsでSLIMEやるしかないですか?
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。
- 528 :デフォルトの名無しさん:2019/01/15(火) 05:34:30.77 ID:lhwbzmDt.net
- >>527
「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。
https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB
- 529 :514:2019/01/15(火) 10:41:56.87 ID:EvpJOxTU.net
- すみません、勘違いでした。
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?
- 530 :デフォルトの名無しさん:2019/01/16(水) 01:39:36.94 ID:Q19T/bZz.net
- >>527
「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。
https://docs.racket-lang.org/drracket/debugger.html
- 531 :デフォルトの名無しさん:2019/01/17(木) 06:22:05.82 ID:W9irOPq+.net
- Lispでドルマークって特別な意味ありますかね?正規表現とかナシで
- 532 :デフォルトの名無しさん:2019/01/17(木) 15:24:46.14 ID:XV1+qWbe.net
- Land of Lisp、文字が小さくて読めない…(´;ω;`)
- 533 :デフォルトの名無しさん:2019/01/17(木) 19:09:16.06 ID:Y7dh6bUh.net
- >>532
⊃ハズキルーペ
- 534 :デフォルトの名無しさん:2019/01/18(金) 15:25:03.51 ID:6FOWYZfc.net
- >>531
standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax
readtable いじってたら分からない
- 535 :デフォルトの名無しさん:2019/01/19(土) 14:06:18.02 ID:xfMx41aW.net
- だれかChocorateyにRoswell追加してクレメンス
- 536 :デフォルトの名無しさん:2019/01/19(土) 23:31:04.73 ID:xfMx41aW.net
- Windows版Roswellでinstallコマンド出来ている方はいますか?
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。
- 537 :デフォルトの名無しさん:2019/01/20(日) 15:17:16.36 ID:S2xiCEld.net
- 最近Lispを勉強し始めた超初心者です。
関数型言語も初めてです。
末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。
なにか他にメリットが有るのでしょうか。
- 538 :デフォルトの名無しさん:2019/01/20(日) 15:44:22.07 ID:wbmgJCyM.net
- Common LispじゃなくてSchemeだけど、こんな説明はどうでしょう
http://practical-scheme.net/docs/tailcall-j.html
- 539 :はちみつ餃子 :2019/01/20(日) 21:45:08.14 ID:/TyOXJfP.net
- >>537
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)
再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。
どっちを軸するかという説明の仕方の違いってだけ。
- 540 :デフォルトの名無しさん:2019/01/20(日) 23:30:23.13 ID:m7XAF6Qj.net
- >>537 が聞きたいのは、それを再帰として書くことの利点だと思う。
読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。
関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。
- 541 :はちみつ餃子 :2019/01/21(月) 00:09:20.61 ID:seIeK7lJ.net
- あ〜、そっか。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。
- 542 :デフォルトの名無しさん:2019/01/21(月) 08:36:01.54 ID:n4GEno5f.net
- ループはiの様なループ変数が必要だけど、これは変数への破壊的代入または再代入になる
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける
- 543 :デフォルトの名無しさん:2019/01/22(火) 03:37:24.22 ID:rqabYXWq.net
- 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)
- 544 :デフォルトの名無しさん:2019/01/22(火) 18:44:06.81 ID:61UMm30F.net
- >>543
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(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だと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ
- 545 :デフォルトの名無しさん:2019/01/23(水) 01:49:56.83 ID:2DvRHl1Y.net
- すげぇ歴史がある言語のわりに全然ドキュメントもライブラリもないっすね…
- 546 :デフォルトの名無しさん:2019/01/23(水) 15:13:20.89 ID:I7vJASel.net
- Forthをdisるのはやめれ
- 547 :デフォルトの名無しさん:2019/01/23(水) 16:46:55.68 ID:HL71aJyT.net
- ドキュメントがまだないのはまだ始ってないから。
もう少し待て。いつか必ずブームがくるから。
- 548 :デフォルトの名無しさん:2019/01/23(水) 18:13:57.77 ID:iEoy0Btk.net
- lisp勉強中だが他言語しばらく触った後lispに戻ってくるとコード見るだけで笑えてくる
- 549 :デフォルトの名無しさん:2019/01/23(水) 20:17:08.92 ID:W71jjF2T.net
- かっこかっこかっこかっこかっこばかり
- 550 :デフォルトの名無しさん:2019/01/23(水) 21:36:19.03 ID:OIIGbqIY.net
- カッコいいね
- 551 :デフォルトの名無しさん:2019/01/24(木) 10:47:39.00 ID:TePOwsZ1.net
- Juliaってかっこいいですか?
- 552 :デフォルトの名無しさん:2019/01/24(木) 11:43:43.15 ID:6qwP1ilP.net
- カッコはともだち こわくないよ
- 553 :デフォルトの名無しさん:2019/01/25(金) 14:34:14.18 ID:07wWn8gG.net
- Juliaって何かと思ったら新しい言語か
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
- 554 :デフォルトの名無しさん:2019/01/26(土) 01:26:25.34 ID:bl37ikQs.net
- > Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
って言うのは違うだろうと思う
- 555 :はちみつ餃子 :2019/01/26(土) 03:08:15.37 ID:ixrTaENi.net
- LISP 的なマクロというのは
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。
ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。
- 556 :デフォルトの名無しさん:2019/01/26(土) 11:11:15.46 ID:yVAkGzul.net
- TclはLisp的か
- 557 :デフォルトの名無しさん:2019/01/26(土) 13:04:05.95 ID:HhE3t8c5.net
- nil
- 558 :デフォルトの名無しさん:2019/01/29(火) 02:23:30.16 ID:a0yta6qd.net
- Lispってカッコだらけで視認性悪いのに何で最後に)))))って閉じるコーディングスタイルがスタンダードっぽいの?
(some
(some
)
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが
- 559 :デフォルトの名無しさん:2019/01/29(火) 02:59:58.51 ID:jbL5Y/0k.net
- >>558
じゃあお前が広めれば?
- 560 :デフォルトの名無しさん:2019/01/29(火) 13:01:27.96 ID:yJ0I+sIY.net
- Lisperはカッコを見ずにインデントを見る
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる
- 561 :デフォルトの名無しさん:2019/01/29(火) 15:54:32.57 ID:tEhI5kt3.net
- slime の C-c C-] とか一気に全部かっこを閉じるコマンドを使うから、閉じ忘れとか気にしないなあ
- 562 :デフォルトの名無しさん:2019/01/29(火) 16:25:08.69 ID:e8yOd/P9.net
- XMLのタグみたいなもんだな。XMLがそれを理由に廃れたことも含めて。
- 563 :デフォルトの名無しさん:2019/01/29(火) 21:07:40.48 ID:TIeo+FQH.net
- >>560
> カッコだけの行が有るとかえって分かりにくくなる
完全にカッコ見とるやんw
カッコつけんなエアプw
- 564 :デフォルトの名無しさん:2019/01/30(水) 12:44:23.33 ID:eo/Tys4V.net
- >>563
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?
- 565 :デフォルトの名無しさん:2019/01/30(水) 12:52:38.76 ID:Lcj20AkF.net
- エアプさん必死やねw
- 566 :デフォルトの名無しさん:2019/01/30(水) 13:13:38.82 ID:cw4gcsqU.net
- (a))))
の部分のaだけ頻繁にコメントする時は不便に感じる
↓
(a)
)))
にしていいよね?
- 567 :デフォルトの名無しさん:2019/01/30(水) 13:46:07.35 ID:jx8GGD5s.net
- わかる。
(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする
(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))
- 568 :デフォルトの名無しさん:2019/01/30(水) 13:59:53.27 ID:eo/Tys4V.net
- >>566
Emacsだと(a)))で(a)だけ選択してM-;すると自動でカッコがよけて
(a)
))
になるから、そういう状況にはしょっちゅうなる
- 569 :デフォルトの名無しさん:2019/01/30(水) 21:17:23.83 ID:jAE5E/lv.net
- C系の言語から来ると最初は閉じ括弧の行がないのが気になるかもしれないが
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか
- 570 :デフォルトの名無しさん:2019/01/31(木) 12:29:13.76 ID:lgLgsaY3.net
- かっこの話題になるとわらわら湧いてくる陸リスパーさん達w
- 571 :デフォルトの名無しさん:2019/01/31(木) 15:46:41.09 ID:aH0rCOCG.net
- うby最強
- 572 :デフォルトの名無しさん:2019/02/01(金) 01:45:52.05 ID:pWouqX0G.net
- 海でLispするのが本物ってこと?
- 573 :デフォルトの名無しさん:2019/02/01(金) 07:48:11.81 ID:eMw5OSNU.net
- >>572
なんや急に本物て?偽物の自覚でもあったんかおまえw
- 574 :デフォルトの名無しさん:2019/02/01(金) 20:04:50.60 ID:ZYD6dOWd.net
- 何んか湧いてますね
- 575 :デフォルトの名無しさん:2019/02/02(土) 01:05:09.97 ID:JTaE88Yv.net
- にわか認定したい奴が沸いてんのかね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね
- 576 :デフォルトの名無しさん:2019/02/02(土) 07:45:51.33 ID:DNtrULkT.net
- >>575
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw
- 577 :デフォルトの名無しさん:2019/02/02(土) 08:23:24.85 ID:UAuMFjv9.net
- 陸リスパーの定義を述べよ。
リスパーの定義を述べよ。
- 578 :デフォルトの名無しさん:2019/02/02(土) 09:51:20.74 ID:BIkLOTfK.net
- トランクに入れるとか
- 579 :デフォルトの名無しさん:2019/02/02(土) 12:43:40.25 ID:8UgzjBVu.net
- り…陸リスパー
- 580 :デフォルトの名無しさん:2019/02/02(土) 19:18:03.31 ID:UAuMFjv9.net
- おだろうね
- 581 :はちみつ餃子 :2019/02/02(土) 19:22:38.57 ID:KkdP20n5.net
- 陸には「くが」という読みも有ります。
- 582 :デフォルトの名無しさん:2019/02/02(土) 22:26:20.61 ID:zdLK2rou.net
- >>576
陸リスパーはリスパーじゃないらしいが、意味が分からんw
取り敢えず知能指数が75程度かね
- 583 :デフォルトの名無しさん:2019/02/03(日) 11:47:11.28 ID:o6ig8vkN.net
- 陸リスパーさん、案の定バカやったwww
- 584 :デフォルトの名無しさん:2019/02/03(日) 11:59:09.21 ID:6SxaUJ1h.net
- ツマンネ
- 585 :デフォルトの名無しさん:2019/03/20(水) 17:01:33.89 ID:Cy24MG6x.net
- も〜すぐ春ですね。
- 586 :デフォルトの名無しさん:2019/06/15(土) 16:34:52.25 ID:5WxVHbel.net
- 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の所に書けるなら書き方を教えてくれ
- 587 :デフォルトの名無しさん:2019/06/23(日) 06:22:35.07 ID:DFwOz3vJ.net
- >>586
#:g1: ラムダリストでの複雑なパタンマッチ
https://g000001.cddddr.org/3770218746
- 588 :デフォルトの名無しさん:2019/06/23(日) 17:17:52.99 ID:MRp+xueZ.net
- >>587
この記事見たらちゃんと書けることが分かった
自分が前に試した時は何か書き方を間違っていたようだ
取り敢えずモヤモヤが晴れたんで助かりました
- 589 :デフォルトの名無しさん:2019/06/26(水) 20:14:20.90 ID:Y3pTO8/n.net
- コードを C や perl や Lisp や python に書き換えて速度比べていたんですが
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)
perl に負けるのは悔しいんですよ
- 590 :デフォルトの名無しさん:2019/06/26(水) 20:21:44.11 ID:BI2PiUEB.net
- >>589
sbcl使えば?
- 591 :デフォルトの名無しさん:2019/06/26(水) 20:46:18.82 ID:Y3pTO8/n.net
- 早い
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは
0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python
- 592 :デフォルトの名無しさん:2019/06/27(木) 01:23:25.87 ID:dlyc1cFh.net
- CとPerlが2倍程度しか違わないとかどんなコードか気になる
普通二桁違ってもおかしくない
- 593 :デフォルトの名無しさん:2019/06/27(木) 02:17:45.54 ID:9Zxtgl6E.net
- C malloc とか使えばもっと早くなりそう
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA
perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw
- 594 :デフォルトの名無しさん:2019/06/27(木) 14:46:57.17 ID:0O4NWcuW.net
- 最適化コンパイルしているか疑問
もっと早くなる気がする
- 595 :デフォルトの名無しさん:2019/06/27(木) 17:18:17.57 ID:9Zxtgl6E.net
- gcc でも gcc -Ofast -march=native でも
このコードは早さ変らなかった
Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ
- 596 :デフォルトの名無しさん:2019/09/21(土) 00:38:07.12 ID:xRjuzSxf.net
- squeakやpharoみたいな完全フリーなIDEってないの?
- 597 :デフォルトの名無しさん:2019/09/21(土) 00:44:47.91 ID:9d3EeJ1d.net
- Emacs+Slimeで困ってないとかそういうのじゃなくて
- 598 :デフォルトの名無しさん:2019/09/21(土) 01:59:38.19 ID:vpc6CIH7.net
- IDEを強調するならフリーなやつは存在しないんじゃない
有償ならLispWorksとかあるけど
- 599 :デフォルトの名無しさん:2019/09/21(土) 02:01:25.30 ID:vpc6CIH7.net
- おそらくこんなのを求めてるんじゃないかな
ttp://www.lispworks.com/products/ide.html
- 600 :デフォルトの名無しさん:2019/09/21(土) 17:00:18.69 ID:9d3EeJ1d.net
- squeakやpharoはフリーなのにLispはなんで誰もフリーで作らないの?
- 601 :デフォルトの名無しさん:2019/09/21(土) 17:11:00.50 ID:icgczTg/.net
- 君が造ろうと思わないなら同じ理由じゃね
- 602 :デフォルトの名無しさん:2019/09/21(土) 18:42:03.48 ID:9d3EeJ1d.net
- じゃあ世界中のLispプログラマは丘リスパーなの?
- 603 :デフォルトの名無しさん:2019/09/21(土) 21:39:21.04 ID:1BHZJNXJ.net
- w
- 604 :デフォルトの名無しさん:2019/09/21(土) 22:14:36.53 ID:mq5euZR6.net
- だからEmacs+slimeで事足りてるって言ってんだろ
頭悪いの?
- 605 :デフォルトの名無しさん:2019/09/21(土) 22:17:44.52 ID:9d3EeJ1d.net
- マジアスペなのか何かのギャグで言ってるのかわかんないよw
それはわかってるし、そんなことは訊いてないんですけどw
- 606 :デフォルトの名無しさん:2019/09/22(日) 08:43:07.19 ID:VSynpdi7.net
- 十分答えになっていると思うが?
- 607 :デフォルトの名無しさん:2019/09/22(日) 13:10:38.79 ID:y42gsAly.net
- 漏れには ID:9d3EeJ1d がアスペに観える
- 608 :デフォルトの名無しさん:2019/09/22(日) 13:13:37.56 ID:NWulzMwt.net
- だよね
- 609 :デフォルトの名無しさん:2019/09/23(月) 00:17:42.37 ID:yOVeMM4I.net
- 質問はこれね、答えは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で困ってないとかそういうのじゃなくて
- 610 :デフォルトの名無しさん:2019/09/23(月) 11:11:12.88 ID:3qdqqJ07.net
- 64bitのときって引数6個まではスタック使わずにレジスタ渡しなんだな
- 611 :デフォルトの名無しさん:2019/10/13(Sun) 19:14:39 ID:5s4kkgRn.net
- 非LISPマシン(≒汎用CPU)上でのLISP処理系でCDRコーディングが流行らないのって何で?
- 612 ::2019/10/14(Mon) 00:04:21 ID:MCqb83NJ.net
- CDRコーディングはメモリを節約するためのものだけど、今時そんな事する必要がないからだろ
- 613 :デフォルトの名無しさん:2019/10/14(月) 02:33:00.31 ID:4dMEwq0N.net
- 結局早く走らせようとすると面倒なコードにしかならなかった思い出
- 614 ::2019/10/14(Mon) 22:36:05 ID:4/RblZEa.net
- CDRコーディングでメモリ参照の局所性などは向上するのでむしろ現代のCPUで効果があるという話もある
CommonLispの場合,リストはイミュータブルでないので書き換えが発生すると間接参照に置き換わるためどこまで旨味があるかだが
- 615 ::2019/10/15(Tue) 09:45:03 ID:aaeMZMJi.net
- たかがリストの参照に条件分岐が必要になるから、むしろ現代のCPUには速度的に致命的なペナルティが有る
Lispはリストの使い勝手が良いからつい何でも使い勝ちだけど、ある程度以上の可変長のデータには可変長配列を使うべきだろう
- 616 ::2019/10/18(Fri) 01:17:14 ID:eIYWybUZ.net
- 先生質問です!モダーンな言語に慣れた身としては、括弧よりもシンボルが大文字なことが気になります!
SQLと一緒で、なんだか怒られているような、コードに怒りの感情がくっついているような感触がします!
- 617 ::2019/10/18(Fri) 03:05:27 ID:YKg3bugE.net
- クラス名とインスタンス名がどっちも先頭小文字文化で区別がつかないことや
カプセル化を事実上放棄していることについても触れてあげてね
- 618 :デフォルトの名無しさん:2019/10/19(土) 00:39:53.49 ID:X38Vw2Xm.net
- >>616
質問ではない
- 619 ::2019/10/19(Sat) 04:41:27 ID:VYVT60v2.net
- >>616
知らず
- 620 :デフォルトの名無しさん:2019/10/19(土) 14:30:27.83 ID:1oXfIKcZ.net
- >>617
カプセル化を放棄してるってどう言う事?
プライベート変数の事言ってるなら可能だろ
- 621 :デフォルトの名無しさん:2019/10/26(土) 15:03:46.18 ID:a/Ne+y1n.net
- setf 万能な感じだけど
オブジェクトの外からsetfしたら書きかえられたり
なんてことはないよな?
- 622 :デフォルトの名無しさん:2019/10/31(木) 19:55:25.18 ID:IHVIFECG.net
- cl4py で ~/.roswell/local-projects のパッケージ読む方法がわからないです
内部的には sbcl --script をpythonから実行しているので,
これと同じことを ros runでできれば良いはず
- 623 :デフォルトの名無しさん:2019/11/04(月) 19:09:58.20 ID:BHJXlzaa.net
- ~/.roswell/local-projects
~/.quicklisp/local-projects
~/quicklisp/local-projects
全部統一したい.おすすめの設定はありませんでしょうか?
- 624 :デフォルトの名無しさん:2019/11/05(火) 15:20:02.48 ID:mbkTm92O.net
- ln -s
- 625 :デフォルトの名無しさん:2019/11/14(木) 08:00:53.12 ID:XNLPU+DY.net
- Dex:get でURL エンコードは自分で変換するしかないのでしょうか
http postでHmacなる暗号化かけてpostする方法がわかりまでん
- 626 :デフォルトの名無しさん:2019/11/14(木) 16:41:31.82 ID:ot2dc8Ah.net
- https://quickref.common-lisp.net/index-per-library.html
ここに沢山あるパッケージは,名前から中身を類推するしかないの?
このパッケージはテキスト処理で,数値計算でみたいなカテゴリー分類が見たい
- 627 :デフォルトの名無しさん:2019/11/15(金) 02:07:03.14 ID:SpeXmILA.net
- site:https://quickref.common-lisp.net machine learning
とかでぐぐれば?
- 628 :デフォルトの名無しさん:2019/11/15(金) 12:40:19.71 ID:6WelP7wf.net
- https://github.com/mmaul/clml これ凄いですね
- 629 :デフォルトの名無しさん:2019/11/15(金) 13:23:21.62 ID:76R0IrhI.net
- あなる
- 630 :デフォルトの名無しさん:2019/11/15(金) 22:00:06.65 ID:EU/v6jRR.net
- 実践CLが適価で出ていたので次に読もうということでポチりました
それを引き取りに行きましたところ
ふらーっと棚を見たらPAIPとLOLとガウディ本が適価で置いてありやがりまして
全部いっちゃいました><
まだGentle Guideの最初の方読んでるところだとういうのに…どうすんだこれ
- 631 :デフォルトの名無しさん:2019/11/16(土) 00:03:26.10 ID:ITuC7LSd.net
- >>630
Lispマスターになったら言ってくれ
- 632 :デフォルトの名無しさん:2019/11/16(土) 00:04:46.81 ID:ITuC7LSd.net
- Lispを極めた者だけが見えるものが有るという…
- 633 :デフォルトの名無しさん:2019/11/16(土) 00:22:31.74 ID:BwABWAGp.net
- >>631
とりあえずこの順にこなしていくつもりだけど何年かかるかな・・・
https://gist.github.com/y2q-actionman/49d7587912b2786eb68643afde6ca192
- 634 :デフォルトの名無しさん:2019/11/16(土) 00:45:08.22 ID:ITuC7LSd.net
- >>633
なんだこれw
こんなものが有ったのか
これを最後までこなせばマジでLispマスターかもな
知らんけどw
- 635 :デフォルトの名無しさん:2019/11/17(日) 00:11:27.35 ID:Rg5NJh7n.net
- オレがLispマスターになるために、誰かHyperspecを読みやすい日本語に翻訳してくれませんか
- 636 :デフォルトの名無しさん:2019/11/17(日) 09:59:42.64 ID:X9AhIAwA.net
- はじめてなら先に Erlang やれ
Elixir じゃなくて Erlang な
- 637 :デフォルトの名無しさん:2019/11/17(日) 18:58:25.57 ID:8cMlcBXZ.net
- >>636
わかりました!
CLispやります
- 638 :デフォルトの名無しさん:2019/11/17(日) 19:53:03.62 ID:uNVU1LmK.net
- そういうわけでGNUのEmacs Lispプログラミング入門読み始めたのだ
- 639 :デフォルトの名無しさん:2019/11/23(土) 12:12:31.12 ID:9GE+Zi9m.net
- >>614
基本はイミュータブルって事にしておいて、書き換えなきゃならなくなった時は
都度ミュータブルに変更(≒実際にはミュータブルに見える)とかは無し?
- 640 :626:2019/11/23(土) 12:16:52.71 ID:9GE+Zi9m.net
- コピーオンライトっていうもっと簡単な用語があった
orz
- 641 :デフォルトの名無しさん:2019/12/28(土) 16:35:07.94 ID:zdKgsTQK.net
- ここでMaximaの話したら駄目?
- 642 :デフォルトの名無しさん:2019/12/28(土) 16:58:47.35 ID:i/tVhKl3.net
- クソ虫ペダルの話題は他でやって
- 643 :デフォルトの名無しさん:2020/01/19(日) 21:09:24 ID:e1ukXRkq.net
- 保守
- 644 :デフォルトの名無しさん:2020/02/13(木) 16:16:45 ID:Zcn6rtH0.net
- quicklispの動作確認のためのhollow worldしかない単純なパッケージってないのでしょうか?
- 645 :デフォルトの名無しさん:2020/02/15(土) 21:48:04.96 ID:reYL48Kc.net
- >>600
smalltalkは良くも悪くもIDE込みの言語だからな。
- 646 :デフォルトの名無しさん:2020/02/20(木) 15:29:37 ID:TfLGY2HC.net
- >>644
「動作確認」が何を意味するのか微妙だけど・・
Quicklisp client が入っているかどうかだけなら、REPL で
(ql:client-version)
とか打って "2019-02-16" とか返ってくるのかを見ればよさそう。
- 647 :デフォルトの名無しさん:2020/02/23(日) 16:33:42 ID:rMYt9Lfm.net
- Pattern matchで一番使われているのはoptimaなんです?
速度なくて良いので、もっと実装が単純なの探してます
それからquicklispにonlispのコードまとまってるパッケージないですか
- 648 :デフォルトの名無しさん:2020/02/23(日) 18:30:00 ID:ZlpvVH2U.net
- 実装が単純ってのを基準にライブラリ選定するやついるか?
quicklispに教材は集積されてないんじゃないの.知らんけど
- 649 :デフォルトの名無しさん:2020/02/23(日) 19:56:19.38 ID:buSGB+sr.net
- コモンリスプの最初の教科書として『これが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))))))
ワーニングのメッセージもコピペしたほうが良いですか?
- 650 :デフォルトの名無しさん:2020/02/23(日) 23:12:17 ID:pcZQVic1.net
- on lispのコードはポール・グレアムのサイトから落とせるよ
- 651 :デフォルトの名無しさん:2020/02/24(月) 00:14:28 ID:ADNywXxE.net
- Macro expandの結果がslimeだと
#1=
みたいのなくて、全部代入されて展開されるのに
コマンドラインからだと、ところどころ出てくる
この代入みたいなの出てこないような設定出来ないのでしょうか
- 652 :デフォルトの名無しさん:2020/02/25(火) 02:41:22 ID:7uXswvK3.net
- >>649
ここを
(symbol-function fun)
こうすると動きます
(function-lambda-expression (symbol-function fun))
- 653 :デフォルトの名無しさん:2020/02/25(火) 11:57:12.46 ID:8lWyfop6.net
- >>651
*print-circle* を nil にするといいはず
(setf *print-circle* nil)
- 654 :デフォルトの名無しさん:2020/02/25(火) 21:44:40 ID:EXaHk6FB.net
- >>652
ありがとうございます!
- 655 :デフォルトの名無しさん:2020/02/26(水) 15:29:30.05 ID:DHrVhTjk.net
- …動いたは動いたけど、目的の動作ではないような…
関数定義のプリティプリントをするマクロなんですが…
- 656 :デフォルトの名無しさん:2020/02/26(水) 22:35:08.55 ID:hFQlDZVm.net
- >>655
残念ながら、必ずしも 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 を返してきました)。
- 657 :デフォルトの名無しさん:2020/03/03(火) 21:49:43.84 ID:JAknlLuJ.net
- clhsの読み方がわかんないんだけどpprintは代用にならないのかな
- 658 :デフォルトの名無しさん:2020/03/05(木) 03:14:59.23 ID:2Ey3ZIKM.net
- httpクライアントはdexが一番メジャーなの?
- 659 :デフォルトの名無しさん:2020/03/05(木) 21:05:07.28 ID:h922Dn8C.net
- >>542
ループで書くと変数への再代入が必要になるから〜
って関数型言語推しの文脈でよく言うけど
それが言うほど問題になる場面ってどれ位あるかね?
それにRubyのeachとかイテレータだと
ループ変数は隠蔽されててあまり使わないし
ますますそんな実害はない気がしてくる
- 660 :デフォルトの名無しさん:2020/03/05(木) 21:08:11 ID:h922Dn8C.net
- >>555
Lispのプログラム自体もリストでしかないから
処理とデータの区別が必要なくて
メタプログラミングがしやすいって理屈は分かってる
問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
Lisp信者(というか教祖の)ポールグレアムとかはそう言ってるけど
ライブラリやドキュメントの充実の方が生産性上げる気がしてる
- 661 :デフォルトの名無しさん:2020/03/05(木) 21:09:30 ID:h922Dn8C.net
- >>558
そうすると行数が増えるのがイヤなんだろうと思う
最後にカッコが重なるのはオレもイヤだが
- 662 :デフォルトの名無しさん:2020/03/05(木) 21:12:16 ID:h922Dn8C.net
- >>589
今どきもう処理速度より
人間が読み書きする速度の方が重要だろ?
でそれはPythonの方が早そうな気がするけど
- 663 :デフォルトの名無しさん:2020/03/05(木) 21:14:22 ID:h922Dn8C.net
- >>596
>>600
Emacsってフリーソフトの草分けじゃん?
エディタだけどIDEに近いんじゃないの?
欲しい機能はLispで自力実装するになるけど
- 664 :デフォルトの名無しさん:2020/03/05(木) 21:16:29 ID:h922Dn8C.net
- >>616
個人的にはOOPやろうとすると
A.bにならないことが気になるわ
- 665 :デフォルトの名無しさん:2020/03/05(木) 21:18:07.40 ID:h922Dn8C.net
- >>645
SmalltalkはあのIDEを使うために
言語も学ぶみたいな感じだからな
- 666 :デフォルトの名無しさん:2020/03/05(木) 23:47:34.83 ID:5jJ4qXDk.net
- >>660
> ライブラリやドキュメントの充実の方が生産性上げる気がしてる
ドンキ行けばなんでも売ってるから買えば済むけどそれは生産性高いのか
ドキュメントの充実とかいうのも所詮Qiitaにコピペできる手順が書いてあるかどうかだろ
> 問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
最近のわかりやすい事例でいうとライブラリやドキュメントが充実してないような量子コンピューティングでlisp使われてるわな
d-waveやrigetti
ゼロスタートでの生産性高いから採用されてんじゃないの
昔からlispはそういうところで使われてきたんだよな
- 667 :デフォルトの名無しさん:2020/03/07(土) 03:25:56.46 ID:XQNdi0wU.net
- (list 1 2 3) = '( 1 2 3) ?
- 668 :デフォルトの名無しさん:2020/03/07(土) 08:36:38 ID:meF2wfp3.net
- >>666
>ドンキ行けばなんでも売ってるから
>買えば済むけどそれは生産性高いのか
どうでもいいけど
PHPってドンキみたいな雰囲気だよな
- 669 :デフォルトの名無しさん:2020/03/07(土) 14:34:31 ID:z1zbB2pR.net
- >>667
=の意味による。
- 670 :デフォルトの名無しさん:2020/03/11(水) 22:30:07 ID:XKsESyyO.net
- >>669
?の意味わ?
- 671 :デフォルトの名無しさん:2020/03/17(火) 18:02:01.30 ID:StMMVjQO.net
- 実践common lispの古本買ったのですが
LispBox落としてきて本に載ってるEmacs?Slime?わかんないけどショートカットキー試したら
ほとんど通らなくて絶望してる
前の持ち主はそこまででこの本捨てたみたい
(ここまではラインマーカーあり、手あと付きまくりで汚れてる
水滴の落ちた跡があるけど、泣いたのかもしれない)
- 672 :デフォルトの名無しさん:2020/03/17(火) 18:21:44.91 ID:XIub247n.net
- なるほど
C言語の本でもポインタの説明が間違ってて詰むパターンか
- 673 :デフォルトの名無しさん:2020/03/17(火) 18:38:29.75 ID:y139aNvj.net
- かわいそうに
K&R本も難読で苦労した人も多かろう
- 674 :デフォルトの名無しさん:2020/03/17(火) 21:41:37 ID:v8kclrng.net
- ポインタの話を出して「それに比べたらお前の絶望なんて大したこと無い」ってか
Cはドメジャー言語、Lispはマイナー言語だぞ
- 675 :デフォルトの名無しさん:2020/03/17(火) 21:59:51.74 ID:lqRJWXI0.net
- 実践common lispってそんなHow To本だったっけ?pathnameのはなしをよんでうげっとなったような記憶が。
- 676 ::2020/03/17(火) 21:59:55.51 ID:1bTOUrPD.net
- >>674
lisp はマイナーなんかじゃなく、神話ですよ
- 677 :デフォルトの名無しさん:2020/03/17(火) 22:03:05.74 ID:v8kclrng.net
- 読者も書籍も少ないという意味では同じ意味だろアスペ野郎
- 678 :デフォルトの名無しさん:2020/03/17(火) 23:19:20 ID:lLOB6fa+.net
- lisp初心者とプログラミング初心者のどっちなんだってやつ多いよな
pythonおすすめ
- 679 :デフォルトの名無しさん:2020/03/18(水) 07:25:29.43 ID:HGjE4cJ6.net
- 冒頭Emacsの使い方から書いてある、環境も提供してる
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね
- 680 :デフォルトの名無しさん:2020/03/18(水) 08:27:48 ID:e34uYQaF.net
- LispBoxですが
カッコ全閉じ C-c C-q → undefined
関数コンパイル C-c C-c → [Condition of type SIMPLE-ERROR]
→戻るとリターンで評価が効かなくなってる
関数コンパイル M-x slime-compile-defun → 通る
どうすれば?
- 681 :デフォルトの名無しさん:2020/03/18(水) 10:11:26 ID:i4GVxo4Z.net
- >>679
全くの初心者でも無いです
大学ではEmacsでレポートを書いていたし、Schemeの本も読みました
再帰は多少慣れています
- 682 :デフォルトの名無しさん:2020/03/18(水) 11:01:54.67 ID:YWqpfRsi.net
- >>680
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))
- 683 :デフォルトの名無しさん:2020/03/18(水) 11:04:51.07 ID:YWqpfRsi.net
- なおREPLでは Ctrl+Enter で「カッコ全閉じして評価」ができます:
CL-USER> (list(list(list ;ここで Ctrl+Enter すると
↓
CL-USER> (list(list(list)))
((NIL))
CL-USER>
- 684 :デフォルトの名無しさん:2020/03/18(水) 11:32:38 ID:i4GVxo4Z.net
- >>682
ありがとうございます!
LispBoxが古いせいなのか、C-c C-cが未定義なんですよね
C-c C-]も未定義と叱られます
>>683は通って全閉じしてエンターしてくれます
Emacs 23.2.1です
ここから貰ってきたものです
https://common-lisp.net/project/lispbox/
- 685 :デフォルトの名無しさん:2020/03/18(水) 11:39:38.76 ID:i4GVxo4Z.net
- Lisp Cabinetも入れててこっちはslime2009-10-15でちょっと古いのか
*slime-repl sbcl*でC-c C-]が未定義と言われます
- 686 :デフォルトの名無しさん:2020/03/18(水) 13:08:33.20 ID:c+xBBuM1.net
- >>685
>>682 の言う通り、 *slime-repl sbcl* では C-c C-] は定義されておらず、使いたければ 669 と同じ手当てがいる。
SLIME 2.24 (May 2019) でも slime-repl には C-c C-] は定義されていないみたい。
.lisp ファイルを開いた時の slime-mode には定義されてるけど。
- 687 :デフォルトの名無しさん:2020/03/18(水) 14:08:10 ID:YWqpfRsi.net
- >>682の「設定」はいったん忘れてください。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。
とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。
- 688 :デフォルトの名無しさん:2020/03/19(木) 01:34:16 ID:kzb4sQto.net
- 閉じ括弧は自動入力に頼るべきだし、実際閉じ括弧を入力する事は皆無だ
- 689 :デフォルトの名無しさん:2020/03/20(金) 18:05:58 ID:X6A/hsgw.net
- 実践common lispは序章に common lisp に興味があるすべての人に向けたもの とは書いてあるがプログラミング初心者にも向くとは書いてない
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ
- 690 :デフォルトの名無しさん:2020/03/20(金) 21:06:17 ID:VDRHLCp0.net
- だからって前提としてる環境で通らない事を書いてたら読者可哀相ではある
- 691 :デフォルトの名無しさん:2020/03/21(土) 07:40:12 ID:5WNgmSYJ.net
- 実践は少なくとも10年前は本の通りそのまま動いたよ
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい
lispboxの代替品はいまならportacleだろうな https://portacle.github.io
- 692 :デフォルトの名無しさん:2020/03/21(土) 11:22:04 ID:lNZ58Hb9.net
- 32bitのwin7ですのや…
- 693 :デフォルトの名無しさん:2020/03/21(土) 11:41:58 ID:fW5UJNuz.net
- サバイバルなんとかって同人誌には導入の方法とか書いてないの?
- 694 :デフォルトの名無しさん:2020/03/21(土) 18:21:48 ID:lNZ58Hb9.net
- HDD買ってきてlinux入れるしかないかなぁ
どうせならlibreboot化してみっかなCL関係ないけど
- 695 :デフォルトの名無しさん:2020/03/23(月) 13:01:38.12 ID:Anw2hEtg.net
- Portacle 解説スライドとかあるのか
https://www.slideshare.net/masatoi0/portacle-common-lisp
- 696 :デフォルトの名無しさん:2020/03/24(火) 21:26:46.71 ID:G3YLWB5X.net
- Lispworks買えばいいと思うよ。
- 697 :デフォルトの名無しさん:2020/03/25(水) 01:50:52 ID:/V276iPY.net
- 幾らぐらいするの?3万までなら考える
- 698 :デフォルトの名無しさん:2020/03/25(水) 04:44:13 ID:LMRkqywH.net
- 年間ライセンスで$1500から
- 699 :デフォルトの名無しさん:2020/03/25(水) 04:45:11 ID:LMRkqywH.net
- 64bit版は$3000からだったわ
- 700 :デフォルトの名無しさん:2020/03/25(水) 09:45:21.75 ID:L/38DGRQ.net
- ハイパースペックの日本語版が付いてたら考える
- 701 :デフォルトの名無しさん:2020/03/25(水) 22:37:29 ID:SRZi3lVq.net
- 嘘書くなよ‥
ホビー向けlispworksは 64ビット版 750$ 32ビット版 500$
http://www.lispworks.com/buy/prices-1h.html
- 702 :デフォルトの名無しさん:2020/09/03(木) 03:25:23.97 ID:ms0eH1iEx
- 週休3日制を採用している企業一覧
https://www.k-society.com/recruit/list_of_companies_allow_a-four-day-workweek/
「週休3日・下限年収1000万」採用ツイートが話題に! “日本のエンジニア安く買い叩かれ過ぎ問題”に一石を投じた起業家の願い
https://type.jp/et/feature/11257
ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
https://news.mynavi.jp/article/20191217-940849/
週休4日OK、介護などと両立も SMBC日興が導入へ
https://www.asahi.com/articles/ASMDJ4HD3MDJULFA01K.html
ルネサス、週休3日制導入へ 連休明けから5000人対象
https://www.nikkei.com/article/DGXMZO58462290U0A420C2TJ2000/
土日と「水曜」は休日! ベンチャー企業が「週休3日制」を導入してよかったコト
https://www.j-cast.com/2019/07/21363088.html?p=all
2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ
https://prtimes.jp/main/html/rd/p/000000096.000016431.html
「週休3日」でバズった、無人コンビニ「600」はどんな会社か
https://media.moneyforward.com/articles/3394
週休3日制を導入した企業が学んだ7つの教訓とは?
https://gigazine.net/news/20200712-7-lessons-four-day-workweek/
「給料が倍になるよりうれしい」経営が導入に踏み切った、エンジニアの週休3日制とは
https://www.excite.co.jp/news/article/ds_journal_dsjournal19991/
- 703 :デフォルトの名無しさん:2020/09/04(金) 00:51:07.26 ID:2/DOh4aN.net
- 思う所あって、とりあえず入門しようう・・・と
ttp://www.nct9.ne.jp/m_hiroi/clisp/index.html
ここ見ながらSBCLをWindowsに入れて始めました。
・・・うん、流石に数日で制覇は無理だし、当分はリファレンス見ながらじゃないと文法は頭に入らないかな。
ただもっと疑問なのは・・・私はインタプリタがBASIC以来で30年ばかりブランクあるのだけど、LISTやNEWやRENUMみたいなインタプリタへの命令ってどうなってるんでしょ。
定義した関数は実行できるけどコードはもう見れないなんてコトないよね。変数は確認できるけど。
ググって他の入門テキスト当たっても特に記述がないってのはどういうコトなんだ・・・かろうじてLOADがあった程度とか。
見落としてるのかな。
- 704 :デフォルトの名無しさん:2020/09/05(土) 14:10:39.36 ID:Cjkr8hQ1.net
- 以下のエラー、対処法わかりますか?
$ 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
- 705 :デフォルトの名無しさん:2020/09/05(土) 14:27:23.90 ID:D6IgUwp/.net
- The symbol "LOAD-ASD" is not external in the ASDF/INTERFACE package.
- 706 :デフォルトの名無しさん:2020/09/05(土) 22:32:24.15 ID:dAk5cbFF.net
- asdf よりも、日本人が作った、anyenv を使えないの?
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
ruby 2.6.6, node 12.16.2 を入れた
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
- 707 :デフォルトの名無しさん:2020/09/05(土) 23:32:01.77 ID:wplCbP8B.net
- anyenvと比較されるのはroswellだと思うが
- 708 :デフォルトの名無しさん:2020/09/06(日) 05:38:11.06 ID:2WTO0asO.net
- >>705
ありがとうございます。
次の段階に移りました。
下のように 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
- 709 :692:2020/09/06(日) 07:12:16.75 ID:rmQ2DAlK.net
- anyenv install --list
と入力すると、Lisp には対応してなさそう。すまんかった
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, luaenv, nodenv
phpenv, plenv, pyenv, rbenv, sbtenv
scalaenv, swiftenv, tfenv
- 710 :デフォルトの名無しさん:2020/09/08(火) 08:07:17 ID:+pvHuz8t.net
- lemはしょっちゅう壊れるから開発に参加できるくらいのスキルないと常用はむり
エディタの拡張書いてもAPIの変更ですぐ動かなくなるからエディタ好き以外には時間の無駄
- 711 :デフォルトの名無しさん:2020/10/14(水) 19:04:18.21 ID:TzQ21R5Y5
- 東大院生がYouTuberになった理由
https://www.youtube.com/watch?v=pEqdjYJoyms
教育系YouTuberの1週間を撮ってみた【Vlog】
https://www.youtube.com/watch?v=i3A_1pCLCEA
塾講師をはじめる君へ【新人講師・教師の方へ】
https://www.youtube.com/watch?v=z-EtLRtDlzY
なぜ勉強するのか
https://www.youtube.com/watch?v=Kpfae1U2uFE
文科省で講演してきました【YouTubeによる教育と研究の橋渡し】
https://www.youtube.com/watch?v=0EZubjIyEAs
学生バイトは要注意!103万の壁ってなに?
https://www.youtube.com/watch?v=eTTqAct0RBg
教育系YouTuberのノウハウを共有します
https://www.youtube.com/watch?v=t0rosFtOpa0
初々しい講師時代を暴露します
https://www.youtube.com/watch?v=W2NplguCfho
もしも生徒が全員予備校講師だったら
https://www.youtube.com/watch?v=LkyIr5fcnpI
- 712 :デフォルトの名無しさん:2020/11/04(水) 21:31:17.19 ID:9sV4Q56c.net
- 質問失礼します
LISPでLinux向けのDAWアプリケーション(seq24のような)小規模なものが作りたいのですが, SchemeとCommonLISPの選択だと後者で間違えないでしょうか?
また音系ライブラリの充実度とかも教えていただければ助かります
環境はdebianのsidにemacsとroswellです。
- 713 :デフォルトの名無しさん:2020/11/05(木) 15:01:20.13 ID:B9BQMK/O.net
- puredate使った方がいいでない?tcp/udpも使えるし、lispでサーバ書けばいいんじゃない
- 714 :デフォルトの名無しさん:2020/11/05(木) 15:25:37.28 ID:B9BQMK/O.net
- 筋違いなこと書いたは忘れて
- 715 :デフォルトの名無しさん:2020/11/06(金) 20:30:58.16 ID:R/hRdVlur
- ヒカルと店長からこれまで話してこなかった真面目な話があります
https://www.youtube.com/watch?v=WiPoQWJfFt0&t=900s
全部話します。YouTuberヒカルが生まれるまでの話しと今の本音
https://www.youtube.com/watch?v=97FsyM7G1jw
高校生の自分に教えたいこと
https://www.youtube.com/watch?v=y0SY32zOExc
嫌われながら好きなことで、生きていく「起業家-ヒカル」
https://www.youtube.com/watch?v=OcsN5iD7C-s
【本音対談】これからYouTubeをはじめるあなたへ【DJ社長×ヒカル】
https://www.youtube.com/watch?v=IDL3dLxyPuk
【好きなことで、生きていく】『レペゼン地球-DJ社長-』
https://www.youtube.com/watch?v=PPnbEiXSYM8
【初コラボ】メンタリストDaiGoとお金と仕事と結婚の話してみた
https://www.youtube.com/watch?v=ZOp069kptHc&t=618s
島田紳助 見たら絶対復帰してほしくなる!超一流のトークを堪能してください!
https://www.youtube.com/watch?v=yZQwCPVx1Cg
- 716 :デフォルトの名無しさん:2020/11/14(土) 11:02:53.04 ID:7fHOS6NH.net
- 道はnilを生ず、nilはアトムを生じ、アトムはS式を生じ、S式は万物を生ず。なるズルい帯に釣られて初めてLISP買っちまった
初めての人に向けた宣伝文…?
- 717 :デフォルトの名無しさん:2020/11/17(火) 01:07:55.57 ID:k3t+4yVm.net
- map族で遊んで楽しんでるけどmapconだけ名前が変なの気になって仕方ないたすけて
対応するcar版のmapcanのnはnconcでわかるけどじゃあなんでmapcdnじゃないんだ
- 718 :デフォルトの名無しさん:2020/11/17(火) 18:02:14.18 ID:p11aQciX.net
- 漠然と concatenate の con かなーと思ってた
じゃあ can は何だよってなるけど
- 719 :デフォルトの名無しさん:2020/11/17(火) 19:37:22.55 ID:j2x0ZSt2.net
- あ、それでいいかありがとう
map CAr N-conc → mapcan
map cdr n-CONc → mapcon
腑に落ちた
- 720 :デフォルトの名無しさん:2020/11/21(土) 16:35:59.11 ID:S5mOPbU/.net
- 多値をわざわざ実装する意味って何なんだろう?
truncate/remainderを一気に得られるのは確かに便利だけどさ
コンシング無しだからパフォーマンスが良い?
自分で書くときも(数個の、一様でない)リストを返すより、多値で返すのが良い習慣?
- 721 :デフォルトの名無しさん:2020/11/22(日) 00:03:59.68 ID:zjc8v2cC.net
- 入力と出力の対称性かな?
知らんけど
- 722 :デフォルトの名無しさん:2020/11/22(日) 06:14:03.03 ID:WGYXQsl7.net
- 基本的な意義は最適化への期待だね。
リストで書くより意図が伝わりやすいから、実際には使われない値の計算を省くとかしやすいかもしれない。
多値を普通の値として扱うと先頭要素が返るってのもある。
メインとオマケみたいな関係にある値を多値で返すと、メインの値へのアクセスには car とか通さなくていいとか。
一つの値だけを返してた関数を拡張するとき、多値なら互換性を壊さずに他の値も返せるとか。
ただ LISP はリスト処理が得意な言語だから、迷ったらリストを使う方向でいいと思う。
- 723 :デフォルトの名無しさん:2020/11/23(月) 11:01:48.80 ID://ZJMWym.net
- なぜ未だにLispなのか?
Lispはメモリアクセスが演算と同じかむしろ早かったような時代に作られた言語。
キャッシュ付きのパイプライン方式のプロセッサとは相性が悪い。
メモリをポインターでたぐりまくるのでは性能が出ない。
また、スレッド並列化や分散並列化は難しいだろ?
- 724 :デフォルトの名無しさん:2020/11/23(月) 11:37:20.81 ID:Trrr2V1M.net
- 型付けまくって配列メインならcに並ぶパフォーマンス出るだろ
まああんまり使い過ぎるとlispっぽくなくてlispである意味なくなっちゃうんですけどね
- 725 :デフォルトの名無しさん:2020/11/23(月) 13:23:39.22 ID:XVVIWvW3.net
- マクロはまだ一線級だから…
- 726 :デフォルトの名無しさん:2020/11/23(月) 13:36:57.00 ID:Trrr2V1M.net
- そもそもパフォーマンスの定義がlispでは難しい
極論を言えば環境に依らない計算は全てコンパイル時に済ますように(普通な見た目で)書けるし
他言語コンパイラにも定数畳み込みあるけどほんと微々たるもんだ
まあ、個々に良いとこ挙げても結局Lisp Is Syntactically Pureが全て
これがただ一つの本質
- 727 :デフォルトの名無しさん:2020/11/23(月) 15:12:17.50 ID:b5+ZYIc/.net
- なぜlispなのか。そりは処理系がつくりやすいからでは。で、なぜForthではないんかと。
- 728 :デフォルトの名無しさん:2020/11/23(月) 19:07:05.19 ID:sOtYoYn2.net
- lispは変態だけどforth程じゃないから
- 729 :デフォルトの名無しさん:2020/11/24(火) 05:55:47.58 ID:J3kRb2mj.net
- 構文解析がほぼ不要だから、簡単な LISP 処理系を書くってのは演習とかで見かけるけど…
それを目当てに言語を選ぶことってあんまりないと思う。
LISP の強みはマクロだよ。
リスト処理が得意な言語で、コードもリストとして書いてるから、メタプログラミングがやりやすい。
- 730 :デフォルトの名無しさん:2020/11/24(火) 10:56:20.49 ID:4gr82zpM.net
- そうなん?Luaみたいにゲームのシナリオスクリプト記述用として需要があるのかと。
うちゲームじゃないけど使ってるよ
- 731 :デフォルトの名無しさん:2020/11/25(水) 00:14:34.22 ID:qDndbwAs.net
- スクリプト用に LISP 組み込む形って、 Emacs くらいしか生き残ってないよね…
相性自体は悪くないはずなんだけど。
Lua とかのほうが手を出しやすいんだろうね。
- 732 :デフォルトの名無しさん:2020/11/25(水) 01:05:02.44 ID:qa6Te+em.net
- ポータブルが取り柄、知っていればどんな環境でもlispにできる
(gcを考えない)lisp実装はワンライナーまであるし
慣れた関数マクロも使いたきゃ足りなきゃ実装例コピペすればいい
schemeはwebの仕様書に網羅的な実装例、clは…なんだろ
cltl2、特にappendixあたりか
おれはbackquoteの実装例が全くプリミティブじゃないのに驚いた
- 733 :デフォルトの名無しさん:2020/11/25(水) 01:16:03.51 ID:qa6Te+em.net
- 拡張言語にemacsみたいな生lispはちょっとなあ…
今更lispを勉強しようって人少ないだろうし、せめて()を隠蔽しないと
emacsはオモチャとしては惹かれるんだけど、正直vimの方が使いやすいごめん(ポールもvi派だし)
- 734 :デフォルトの名無しさん:2020/11/25(水) 03:57:24.38 ID:eHKzIqWP.net
- guile採用してるのはそれなりにある
gimpやgnucashとか
- 735 :デフォルトの名無しさん:2020/11/25(水) 05:23:23.30 ID:gnG0Qzbx.net
- ここcommon lispスレだよオレlisp話はlispスレでやれば
- 736 :デフォルトの名無しさん:2020/11/25(水) 09:23:58.22 ID:Eovv5MKD.net
- こんな過疎スレにも警察が
- 737 :デフォルトの名無しさん:2020/11/25(水) 10:50:31.91 ID:m/dxKoiX.net
- 今時のcommon lispの開発環境はroswellとemacsをインストールすれば完了?
- 738 :デフォルトの名無しさん:2020/11/25(水) 11:29:02.66 ID:NHQccPME.net
- Lispworks買えばおk
- 739 :デフォルトの名無しさん:2020/11/25(水) 11:50:45.95 ID:qa6Te+em.net
- roswellは仮想環境作って真面目な開発&テストするならオススメ
clの処理系はオプション指定法がバラバラなのでそれもラップしてくれる
rcファイルもroswellが管理する
カジュアル用途ならオススメできない
ホーム直下の深い階層にバージョン違いの処理系やライブラリがバージョン毎にズラズラ
普及してるsbclとclispを生で普通に使えばよいよ
2種類rcファイル書くくらいなんでもない
- 740 :723:2020/11/25(水) 13:43:13.28 ID:oErTV+Ij.net
- えっとつまり複雑なので初心者には何が何だか分からんくなるのがオチ、ということ
- 741 :デフォルトの名無しさん:2020/11/25(水) 15:06:11.59 ID:NHQccPME.net
- Lispworks買えばおkって事だよな
- 742 :721:2020/11/25(水) 20:12:44.90 ID:81nZxk7t.net
- >>739
5年位離れてたわけで全くの初心者ではないんだ
>>738
完全な盲点だった、Personal Edition試してみる
ふたりともthnks
- 743 :デフォルトの名無しさん:2020/11/26(木) 15:02:52.37 ID:tQ2i07w3.net
- 上の人ではないのだけれどLispworksでSLIMEみたいに関数の仮引数をミニバッファに表示させることはできますか?
- 744 :デフォルトの名無しさん:2020/11/26(木) 15:07:35.61 ID:9RIVN6I5.net
- >>743
できるお
- 745 :デフォルトの名無しさん:2020/11/26(木) 17:14:45.91 ID:tQ2i07w3.net
- どのようにすればできるのでしょうか
- 746 :デフォルトの名無しさん:2020/11/26(木) 19:07:14.13 ID:tQ2i07w3.net
- C:\Program Files\LispWorks Personal\lib\7-1-0-0\examples\editor\commands\space-show-arglist.lisp
をロードしたら表示できましたありがとうございます。
- 747 :デフォルトの名無しさん:2020/11/26(木) 19:18:00.22 ID:eYZ/oymH.net
- quickdocsのサービス終了してたんだけど代わりになるようなサイトできたの?
それとも純粋に終了しただけ?
- 748 :デフォルトの名無しさん:2020/11/26(木) 19:35:40.66 ID:9RIVN6I5.net
- lw-add-ons
使うのもいいお
- 749 :デフォルトの名無しさん:2020/11/26(木) 19:36:10.65 ID:9RIVN6I5.net
- >>748
Lispworksのはなしね
- 750 :デフォルトの名無しさん:2020/11/26(木) 19:44:24.10 ID:9RIVN6I5.net
- ctrl+Shift+@
日本語キーボードなら。
- 751 :デフォルトの名無しさん:2020/11/26(木) 19:51:18.89 ID:tQ2i07w3.net
- >>750
こっちのが見やすいしかっこいいですね、ありがとうございます。
- 752 :デフォルトの名無しさん:2020/11/26(木) 19:51:29.13 ID:9RIVN6I5.net
- ctrl+`
だな
- 753 :デフォルトの名無しさん:2020/11/26(木) 21:58:41.59 ID:GUNaPZAO.net
- >>747
情報がふるくなっていたので古い情報を掲載するなら閉鎖しろと文句をつけた方がおりましてそれをうけて情報を更新するのではなく閉鎖という経緯
文句をつけた方が責任をとるべく代りのサイトを構築中
- 754 :デフォルトの名無しさん:2020/11/27(金) 07:47:10.66 ID:uZfb8IM8.net
- >>753
文句つけた奴がやらないパターンじゃないの…
- 755 :デフォルトの名無しさん:2020/12/01(火) 22:09:26.54 ID:7sFPB0J6.net
- >>753
>>747
ググれば見つかる。
初めて探したけどすぐ見つかった。
- 756 :デフォルトの名無しさん:2020/12/01(火) 23:19:30.12 ID:3q2HDqZy.net
- 貼れよ
- 757 :デフォルトの名無しさん:2020/12/01(火) 23:56:36.13 ID:GAF0pbTu.net
- あれ一晩バッチ回せば更新できるみたいな感じじゃなかったんだ
- 758 :デフォルトの名無しさん:2020/12/05(土) 07:13:44.24 ID:xYxBposk.net
- 質問です。
(ql:quickload :burgled-batteries)
としたら、
Unable to determine Python include directory.
といわれます。
どうしたら良いのですか?
- 759 :デフォルトの名無しさん:2020/12/05(土) 19:42:21.09 ID:9aa118rN.net
- >>758
(ql:quickload :cl4py)
する
- 760 :デフォルトの名無しさん:2020/12/14(月) 17:59:11.95 ID:R1A1Q73A.net
- 「Lispは数学そのものです」って言われてるけどどの辺が数学なのですか?
Lispを深く学べば分かる?
- 761 :デフォルトの名無しさん:2020/12/14(月) 20:50:21.89 ID:EKcwa4Mw.net
- チャイティンが言ってそう。
- 762 :デフォルトの名無しさん:2020/12/14(月) 20:56:25.02 ID:87NGWabX.net
- 聞いたことないけど、関数型で文が全部式なとこかな
- 763 :デフォルトの名無しさん:2020/12/14(月) 22:47:22.40 ID:w+G2gx4f.net
- ラムダ計算を元にしてるからだろうね
ただ関数型言語はみんなそうだけどね
- 764 :デフォルトの名無しさん:2020/12/16(水) 13:57:03.43 ID:4v/YyiUF.net
- その手の謳い文句は(マクロや状態を考えなければ)文法が数学でモデル化しやすい程度にシンプル、意の事が多いとおもう
まあ数学程度で測れるほど本気のlispは浅くないから真に受けんな
- 765 :デフォルトの名無しさん:2020/12/16(水) 16:54:05.29 ID:ZPNjPXCu.net
- >>764のlisp本出版に期待
- 766 :デフォルトの名無しさん:2020/12/24(木) 18:57:03.05 ID:pBBvR81h.net
- >>731
AutoLISPを知らない癖に偉そうな事を投稿して恥ずかしい無知だな。
https://en.wikipedia.org/wiki/AutoLISP
- 767 :デフォルトの名無しさん:2020/12/24(木) 23:30:50.89 ID:9noM35Vy.net
- >>731
GIMPもLisp(Scheme)だな
ただ、他の言語も使えるけどね
- 768 :デフォルトの名無しさん:2020/12/25(金) 23:52:52.13 ID:eFBWMWd+.net
- luaはかなり早い段階で商用ゲームに組み込まれて成功してるな
homeworldシリーズとか
なぜなのか
- 769 :デフォルトの名無しさん:2020/12/26(土) 00:35:10.68 ID:Ip/MnrvF.net
- >>768
luaは配列が1から始まるってだけで組み込むのを拒否られた思い出が有る
- 770 :デフォルトの名無しさん:2020/12/26(土) 08:42:12.14 ID:1pHBrKBh.net
- >>768
実行速度とサイズと単純さとコルーチン
- 771 :デフォルトの名無しさん:2020/12/26(土) 16:34:04.29 ID:wX3nlbuy.net
- >>769
smalltalk以外で0オリジンじゃない言語あったんか…
- 772 :デフォルトの名無しさん:2020/12/26(土) 17:32:13.19 ID:dAAAQq7y.net
- Julia
- 773 :デフォルトの名無しさん:2020/12/27(日) 00:53:46.18 ID:dOR5xd2b.net
- Commonlispよりもほかの言語が詳しいみなさん
- 774 :デフォルトの名無しさん:2020/12/29(火) 09:19:59.20 ID:IpOZccOp.net
- >>769
んなアホな、Fortranに限らず科学計算界隈の慣習だろ、意識高い系に流行ってるJuliaも1ベース
- 775 :デフォルトの名無しさん:2020/12/29(火) 09:22:42.46 ID:IpOZccOp.net
- >>773
言語ヲタしてると最終的にフリーダムなlispに行き着くのだよ
- 776 :デフォルトの名無しさん:2020/12/29(火) 18:01:49.07 ID:PE0cUsk/.net
- >>774
ゲームに組み込むには、ゲーム自体がC(C++)で作られてるから、0ベースじゃないとワケわからなくなる
- 777 :デフォルトの名無しさん:2020/12/30(水) 12:03:40.00 ID:mB8dSyUZ.net
- まあそれは仕方ないんでね
Fortranはデフォルトがそうなだけでインデックス範囲は負も含めて指定できるし好きにしたらいいよ
むしろcへ組み込む用途で問題なのはcと互換性のある型や呼び出し規約、メモリ配列使ってるかどうかだろ
clにcffiがあるように、Fortranもcと互換の型も使えるようになったし、cでは速度が足りない数値計算ライブラリの多くは比較的書きやすいcをグルー言語にするのが主流
- 778 :デフォルトの名無しさん:2020/12/30(水) 12:11:05.81 ID:mB8dSyUZ.net
- Guy Steeleはほんと天才だと思うわ
cltl2はバイブル、嫌々使われてた古代言語Fortranを魔改造してHPC界を独占
Java?知らない子ですね…
- 779 :デフォルトの名無しさん:2020/12/30(水) 21:14:41.53 ID:Fl1Xq86P.net
- >>778
762みたいなひとはcltl2でGuy Steeleが考えた部分がどれだけあるとおもってるの?
すべて考えたとおもっている?それとも1割くらい?
- 780 :デフォルトの名無しさん:2020/12/30(水) 22:03:02.87 ID:mB8dSyUZ.net
- rationale的な事や不採用になったよ注釈とか見る限り結構標準に関わってるんじゃないの
セカンドオーサーになってるschemeよりは割合少ないと思うけど、なんか読み物的なのないんかね?
- 781 :デフォルトの名無しさん:2021/01/01(金) 19:14:10.70 ID:jdWcRCau.net
- 随分昔の話題掘り返してなんだけど>>564
readable lispってのいい感じだと思うけどどうよ
https://sourceforge.net/p/readable/wiki/Common-lisp-tutorial/
まあインデントに関してはelseとかシンボル埋めないと慣れた人でないと読みにくいかな、オレオレなら構わんが
関数記法とinfixのサブセット添える程度なら初見で分かる
- 782 :デフォルトの名無しさん:2021/01/01(金) 23:43:40.40 ID:eOUUBYDG.net
- 妙なシンタックスにしてまでlisp書く意味ないやんあほなん
- 783 :デフォルトの名無しさん:2021/01/08(金) 15:33:14.87 ID:P1vdNW4e.net
- R Studioから、Common Lisp(SBCL)のREPLを使えるように出来ないのかな?
- 784 :デフォルトの名無しさん:2021/01/22(金) 15:32:52.46 ID:SKKILF9F.net
- 一番バグが少なくなる言語は何だろうと思って検索してたんだけど
Lispのバグ発生率はどんな感じ?
- 785 :デフォルトの名無しさん:2021/01/22(金) 22:20:19.77 ID:n5D5pWe7.net
- そんなのありすぎてどうとも答えられん
- 786 :デフォルトの名無しさん:2021/01/22(金) 23:58:59.39 ID:XFgLuzCc.net
- >>784
COBOLとか言われたら逆にどうすんのか知りたいw
- 787 :デフォルトの名無しさん:2021/01/25(月) 14:15:55.11 ID:KT5/fGKR.net
- ありすぎるけどtraceとmacroexpandパワーでデバッグは楽なので気にすんな
disassembleやfunction-lambda-expressionやsource-location系もたぶん処理系依存?(大体あると思うけど)
ちょっとしか触ってないがschemeはインスペクタが統一されてない感じ?がある
- 788 :デフォルトの名無しさん:2021/01/25(月) 14:17:00.31 ID:KT5/fGKR.net
- 形式的に見つけられるバグは絶対許さない言語はML系だろうな、ocamlとか
- 789 :デフォルトの名無しさん:2021/01/25(月) 22:05:41.34 ID:eqLbENm4.net
- traceとmacroexpandパワーでデバッグが楽ちんだとおもったときが一回もない
- 790 :デフォルトの名無しさん:2021/01/26(火) 21:21:48.32 ID:+x6NTk+g.net
- う、うむ…
lisp2dotおすすめ
慣れると変な繋がり方してるのぱっと見でわかるようになる
- 791 :デフォルトの名無しさん:2021/01/27(水) 13:51:29.88 ID:0Z/Evltn.net
- quicklispって必要?quicklisp必要になったことないんだけど
- 792 :デフォルトの名無しさん:2021/01/28(木) 04:27:57.25 ID:52TUUvk8.net
- >>791
他言語だと好き勝手に投稿されてるマネージャが主だけど、qlはちゃんとメンテ精選してる人が居るのでありがたいよ
トップライブラリならちゃんと開発が回ってるからいいけど、準有名程度くらいだとオリジナルの更新数年無し、個人フォークが何十もあって、どれ使えばいいか&何が違うかよくわからんやろ
ただインストーラとしてはすごい便利なんだけど、qlコマンドは殆ど呼んでないな
あちこち要らないとこ読みに行って起動に10秒かかる(よね?)
セットアップでrcに追加される"quicklisp/setup.lisp"を消して、勝手に起動しないようにすると快適
(require 'asdf)で置き換えてqlのディレクトリをパスに加え、(asdf:load-system 'sysname) 等で読み込めば一瞬だし、当然バックエンドのasdfのapiの方が粒度が細い、再コンパイルも防げる
ffi等含め静的にlispイメージをダンプして普段使いするよりずっと便利
- 793 :デフォルトの名無しさん:2021/01/28(木) 04:41:35.03 ID:52TUUvk8.net
- 月例更新と各プラットフォーム&処理系のグリッドビルドテストまでしてるのに、肝心のqlクライアントの最新版が8年前更新のゴミクズなのはなんでなん
教えてエライ人
- 794 :デフォルトの名無しさん:2021/01/29(金) 18:34:12.35 ID:++iCW4cX.net
- 5chとはいえゴミクズとかよく書けたもんだよな
- 795 :デフォルトの名無しさん:2021/02/03(水) 23:16:18.90 ID:k5h7XlDY.net
- 最近CLで書かれたカッコいいアプリとかありますか?
- 796 :デフォルトの名無しさん:2021/02/05(金) 15:45:28.69 ID:7jKMsej2.net
- ごめん言い過ぎた、お世話になってます
- 797 :デフォルトの名無しさん:2021/02/06(土) 04:19:51.16 ID:oQfB5lBJ.net
- 最近書かれたというか、最近のCASのバックエンドはほぼほぼmaximaだったりする
歴史こそ古いが、急にフリーCASシェアNo1(たぶん…)になったので
PythonでもCASをやってるけど、Pythonで一番高機能&人気あるSageMathの高度な部分はほぼmaximaラッパで、ブロブである必要が無い部分はサブセットのSymPyに投げる構成(あと少しのmagma
maxima自体はalgol風に書くんだけど、algol度で言えばPythonに劣るし、もちろんlispでも書けるけどちょっとワークアラウンドが面倒…
- 798 :デフォルトの名無しさん:2021/02/06(土) 04:20:36.20 ID:oQfB5lBJ.net
- 理由が抜けてた
要はPython様々ですな
- 799 :デフォルトの名無しさん:2021/02/06(土) 16:16:42.00 ID:mt4J2iOm.net
- lemをインストールしたのにコマンドラインから認識しない…
roswellは入ってて動いてるんだけど
- 800 :デフォルトの名無しさん:2021/02/06(土) 21:39:13.96 ID:mt4J2iOm.net
- >>710を見て自分にはlemは無理そうなので止めときます
- 801 :デフォルトの名無しさん:2021/02/07(日) 07:44:25.19 ID:A1tdyoeU.net
- lispで書けるvimがあれば最高なのになあと思ってたらlemが出たけどまだ時期が早い
応援だけしてる
- 802 :デフォルトの名無しさん:2021/02/07(日) 13:02:03.70 ID:DNfxGtTi.net
- lemはgithubに登録されたのが2015/8/5だから、結構時間は経ってるな
- 803 :デフォルトの名無しさん:2021/02/08(月) 12:20:16.02 ID:fHsImmU3.net
- まださわりだがClozureCLなかなかいいな
objcのインターフェース持ってる関係でtcl/tkで面倒なことしなくてもいいし
スタンドアロンも作れる
とりあえずslimeで使えるようにしてぼちぼちやってみるわ
- 804 :デフォルトの名無しさん:2021/02/08(月) 15:14:00.45 ID:FcZ190S6.net
- 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が嫌いなだけだったり…
暗黙のアクセサ作ってくれて、それ故に人のコードも暗黙の了解で読めるのはありがたいけど
- 805 :デフォルトの名無しさん:2021/02/08(月) 15:20:42.83 ID:FcZ190S6.net
- パフォーマンスは気にしてない
でも多分*package*から見えるパッケはgcされないはずだから(見えてるからそうだよね?)
入力受けて吐いてすぐ終了のプログラム以外ではちゃんとdelete-packageする必要がありそう
- 806 :デフォルトの名無しさん:2021/02/08(月) 15:28:12.97 ID:U6YnibKO.net
- >>803
楽しそうでなにより
- 807 :デフォルトの名無しさん:2021/02/08(月) 15:30:16.27 ID:FcZ190S6.net
- 携帯で適当に書いたから、今見直しておかしいとこいっぱいあるけどその辺は見逃して下さい
:cyanは自己評価だからsetfできないとか、(symbol-package :cyan)とかで通ったっけ
- 808 :デフォルトの名無しさん:2021/02/08(月) 15:39:43.51 ID:FcZ190S6.net
- いやいやそもそも:cyanはkeywordに住んでるので、string designatorとして適切であっても、symbol-*に渡す時はシンボル'cyanですね
対話的に使ってる時は便利だけど、白紙から書くと間違いまくってるのがこの手法の怪しさを証明してるかも…
- 809 :デフォルトの名無しさん:2021/02/08(月) 17:09:30.27 ID:A57k4pYD.net
- > なんか不都合あるのかな?
議論する価値ない手法だとおもうけどさ
他人とコードをシェアしないで一人でかくのはいいんでないか?
パッケージはhash-tableで実装されているから構造体よかhash-tableが便利いうてるのと大差ないわな
perlのパッケージ調査してみれば?
- 810 :デフォルトの名無しさん:2021/02/08(月) 18:22:21.06 ID:EF6MW318.net
- >>809
その辺はわきまえるよ
処理系の実装まで思い至らなかったので、記法だけを見てハッシュとしての特性を考えて無かった
標準のhashはネストしたときトリッキーなので、qlからaccessライブラリやマクロを駆使した中置アクセサが提供されてるけど、何もuseしないパッケージを使えば素直で性能も出そうだね
特にaccessはjsonとか読む用で、疎なテンソルの扱いとか考えてないし
早速ベンチしてみる、ありがとう!
- 811 :デフォルトの名無しさん:2021/02/08(月) 19:28:02.06 ID:aZaTrcsy.net
- うーん、、パッケージに属する変数との違いが分からない
- 812 :デフォルトの名無しさん:2021/02/08(月) 21:19:48.59 ID:A57k4pYD.net
- シンボルの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))
- 813 :デフォルトの名無しさん:2021/02/08(月) 22:30:06.33 ID:WYlwG+td.net
- 再帰的にパッケージ作ってはimport でホームに設定してるけど…やっぱり筋が悪かったですごめんなさい
一応軌跡だけ
デフォルト値はエラーをhandler-bindで捕まえる
cl-userの(list-all-package)が汚れるからcl-userから先頭以外はuninternして、でも参照は保持して…と
hs見たらdelete-packageやuninternしてもアクセスは許されるがpathologicalなのでチェックは行わないとか書いてる
怪しからん事になってきた
>>812
lisp5らしい方法ですね
propertyスロットに入れたのに、value slotにアクセスしようとしていつも怒られるからあんまりやらないけど…
情報付けたいけどvalueスロットが既に埋まってて、それがライブラリ由来で手を入れたくない時とかの非常口として稀に役に立つ
- 814 :デフォルトの名無しさん:2021/02/08(月) 22:35:25.83 ID:WYlwG+td.net
- sbclではcl-userからのfind/list-all-packageに引っかからなくても普通に生きてるみたい
- 815 :デフォルトの名無しさん:2021/02/12(金) 01:40:00.02 ID:jvXjcedJ.net
- どれくらいplist(用のセル)が使われてるんだろうかと(do-external/all-symbols (s :clとか色々) (when s (print s)))してみたらinternalには意外に使われてた
まあ殆どデバッグ用のタグのようだが
- 816 :デフォルトの名無しさん:2021/02/14(日) 06:07:46.29 ID:QgaFclDV.net
- 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.
- 817 :デフォルトの名無しさん:2021/02/16(火) 17:55:44.18 ID:05vP8Ot3.net
- たのしそう
なんですげー細長いのかすらもよく分からんが
androidだとeclのreplがあるけど残念UIで殆ど触ってない
外付けBluetoothキーボード安いの買ってみるかな
- 818 :デフォルトの名無しさん:2021/02/16(火) 18:22:07.49 ID:6gVrqubW.net
- DynabookならぬTecobookみたいなw
- 819 :デフォルトの名無しさん:2021/02/16(火) 22:06:52.79 ID:05vP8Ot3.net
- ポン叩くとnilが生じ、クルッと( )で囲んだり、ピンチで←(こ う)→引き伸ばしたり、そこへ(flick me)をフリックで放り込んだり(こ (flick me)う)したいです
例えはプログフォームなことを忘れてたら
ここを(kar | kadar...)こうシュッと分裂(kar ) ( kadar...)させてシュッと((kar ) ( kadar...))こうする感じで
よろしくおねがいします
- 820 :デフォルトの名無しさん:2021/02/16(火) 22:16:37.94 ID:05vP8Ot3.net
- paredit/vim使ってるけど脳内操作感はこんなんだな
vimでジェスチャーは難しそう?
:nnomap <left-mouse> ,@(スプライス/paredit)みたいのはタブレで桐南るんだろ?
マウスなら左右中×シングルダブクリの6パターン使えるが
- 821 :デフォルトの名無しさん:2021/02/16(火) 23:05:06.72 ID:82m2i+/K.net
- play storeに転がってるvimの投げやりなポート触る限り、矩形選択が使えそう?
範囲だけで動きが追えないが
キーボードフリーvimなんて、と思ったけどふと試した音声入力が結構戦える事に気づいた(約物とauto-capさえ切れば)
修飾キーあんまり使わないからだね
:、escよく使う大文字修飾コマンド、モード切替あたりはリマップする必要があるが
(par、)renでいこう
- 822 :デフォルトの名無しさん:2021/02/17(水) 01:10:17.45 ID:H30hYpZs.net
- hyperspecの発音記号の項目が輝く時がやっと来たのか
- 823 :デフォルトの名無しさん:2021/03/04(木) 00:09:41.26 ID:p41hv1JI.net
- hsもcltl2も大体読んで細かいとこ気になってきたらansi/isoも読むべき?
60$とえらく高いし製版の評判ボロクソだけど
ANSIに持ち込んで版権付く直前のドラフトがansi-cl.psでググって出てくるけどどのくらい違うんだろ、並べて読まないとhsとは違いが分からんが…
処理系作成者以外が参照する準公式文書でフリーなのは以上3つで尽きてるよね?
もし買った熱心な方いたらお願いします
- 824 :デフォルトの名無しさん:2021/03/04(木) 00:29:46.91 ID:p41hv1JI.net
- 紙のスキャンでocrすらしてない名ばかりpdf、スキャンが斜めってて端の方の文書が欠けてると聞くと、むしろ怖いもの見たさが湧く
c/c++のように違法アップロードが見当たらないのはclの民度が高いのか、もっと高額だからか、それとも単に需要がないからなのか…
- 825 :デフォルトの名無しさん:2021/03/04(木) 02:23:20.12 ID:tD3BuSri.net
- 情報元にドラフトと内容の違いはないというのも書いてあったよな
- 826 :デフォルトの名無しさん:2021/03/04(木) 12:33:01.96 ID:CuM732tt.net
- >>825
そうなの、ありがとう
じゃあ古代のマニュアルでも読んでた方がむしろcons/prosを学べそうだな
- 827 :デフォルトの名無しさん:2021/03/04(木) 13:48:00.83 ID:CIINzG5o.net
- 無理矢理なPDF版よりも、むしろ紙の仕様書が欲しい
AmazonのPODで売ってくれたら絶対買う
- 828 :デフォルトの名無しさん:2021/03/04(木) 15:02:38.87 ID:CuM732tt.net
- 紙の持ってるとほんといいね
寝ながらcltl2の余白に書き込みまくってる、枕にも丁度よい
amazon中古送料込み450円なんでためらいもない
- 829 :デフォルトの名無しさん:2021/03/07(日) 21:32:46.67 ID:xqIC71Yx.net
- 誰か教えてください
CLOSで デストラクタ的な事をするにはどうしたらいいんでしょうか?
(defmethod delete ((o myclass))
~disconnect DB connection とか colse socket とか~ )
(let ((obj (make-instance 'myclass))) ... )
参照が残っていなければ勝手に (delete obj) がコールされるのが理想です
少しググっても「放っておけばガーベッジコレクトされるのに何を心配する必要があるんだ?(英語) 」
みたいなのばかり引っかかってどうにも分かりませんでした
- 830 :デフォルトの名無しさん:2021/03/07(日) 21:44:41.79 ID:OPAOeHk0.net
- 参照がないことを検知できないので
disconnectやらcloseやらは明示で呼ぶしかない
- 831 :デフォルトの名無しさん:2021/03/07(日) 21:54:16.38 ID:xqIC71Yx.net
- ありがとうございます
それが Lispスタイルなのですね、少しづつ慣れていこうと思います
- 832 :デフォルトの名無しさん:2021/03/07(日) 22:12:51.14 ID:R8ni/s97.net
- 単に接続を確実に閉じたいだけなら、with-open-file みたいなマクロ書くけど
CLOSかぁ
- 833 :デフォルトの名無しさん:2021/03/08(月) 21:55:25.40 ID:WFQsFdpL.net
- c++にとらわれすぎc++の用語で検索するからヒットがないだけでlisp raiiで検索すると沢山でてくるよ
リソース管理だから816の回答が定石
- 834 :デフォルトの名無しさん:2021/03/10(水) 01:22:08.43 ID:Y251bYtV.net
- with-なんたらがC#のusing相当よね
- 835 :デフォルトの名無しさん:2021/03/11(木) 00:45:34.23 ID:SHe0MBwi.net
- Python の with はCL由来かな
- 836 :デフォルトの名無しさん:2021/03/11(木) 09:02:08.80 ID:ifNxw6Pa.net
- Pythonはpaulがベタ褒めしてから20年くらい追ってるけど、元はblock(不採用)として提案され、先例上げるのが通例なのに言及もなかったはずなので直接は関係ないんじゃないかな?
pepでよく言及されるのは確かだが
今だと構文マクロは却下されそうだな、面白そうなのに
ふつうの言語はASTを内部表現に採用してると思うが、Pythonは標準関数で抽出&evalを許してるのが特異で面白い
lispインタプリタ書きなどしなくとも、ノードのラベルをリストのcarと入れ替えるだけの数行のコードでフルパワーlispになる
- 837 :デフォルトの名無しさん:2021/03/11(木) 21:29:17.70 ID:WMKPM4Ms.net
- >>836 ちょっと何言ってるか分かんない
- 838 :デフォルトの名無しさん:2021/03/12(金) 00:20:34.70 ID:jnwQeQfS.net
- >>836
うーん、ちょっと信じられん、Python の内部表現ぐちゃぐちゃじゃなかったっけ
コードで示せる?
- 839 :デフォルトの名無しさん:2021/03/13(土) 03:54:58.89 ID:znyU1x9d.net
- CCLでdexadorが使えなくて困ってるのだけどもしかしてビルド失敗してるのかな
SBCLなら通るのだけどCCLだとこんなエラーになる
ttps://i.imgur.com/uCzQQTm.png
lispの問題解決はそもそもよくわかってないのでどうしたらいいものやら
- 840 :デフォルトの名無しさん:2021/03/13(土) 06:33:03.19 ID:XgCz+Tty.net
- SBCLつかう
- 841 :デフォルトの名無しさん:2021/03/14(日) 15:46:41.12 ID:o2ffqw6Y.net
- >>839
connection refused って出てるあたりよく分からないなあ。
俺が手元のMacで試すと成功したのでより分からない。
いっそのこと HTTP クライアント変えて Drakma 使うとか。
(ql:quickload "drakma")
(drakma:http-request "https://ja.wikipedia.org/wiki/Common_Lisp")
- 842 :デフォルトの名無しさん:2021/03/14(日) 16:55:20.29 ID:CVMafXuR.net
- >>813
propertyはおもむろにsetfしても怒られないので対話使用に便利
というのはさておき怒られない理由が気になる
letでそのシンボルを束縛しててもグローバルのシンボルのplist見に行くよね?
単に気にもかけられない機能だからとか?
- 843 :デフォルトの名無しさん:2021/03/14(日) 17:02:06.59 ID:o+fPUrgF.net
- ああletで束縛するのはplistという名前のvalueであって、getf 'plist 'propって書けば当然シンボルとしてのplistを見に行くわな
自己解決
- 844 :デフォルトの名無しさん:2021/03/14(日) 17:04:59.01 ID:o+fPUrgF.net
- するとpletって概念が頭に浮かぶんだけど、どう実装できるだろう?
ちょっと思いつかない
- 845 :デフォルトの名無しさん:2021/03/15(月) 00:09:02.39 ID:2V51Rd3t.net
- >>841
Drakmaも同様にだめでした
今の所どこから手をつけたらいいかわからないけど地道に調べます
- 846 :デフォルトの名無しさん:2021/03/15(月) 22:54:46.18 ID:nwI8edue.net
- ccl使ってないからわからないけど、ipv6とか出てるのが気になる
- 847 :デフォルトの名無しさん:2021/03/16(火) 00:47:01.98 ID:z8vZoY4R.net
- 最近Lispというものを知ったのですが、皆さんはなぜこの言語を使っているのですか?
- 848 :デフォルトの名無しさん:2021/03/16(火) 01:48:52.01 ID:SXyIy3pf.net
- マスコットが可愛いから
- 849 :デフォルトの名無しさん:2021/03/16(火) 15:35:46.37 ID:3xabyoxQ.net
- どこまでも動的だから
- 850 :デフォルトの名無しさん:2021/03/16(火) 16:36:23.79 ID:SXyIy3pf.net
- 遊び甲斐がある、たぶんFORTHと並んで最も面白い言語から
しかし仕事はない
間接的に地力固めにはなってる気はする
- 851 :デフォルトの名無しさん:2021/03/16(火) 16:39:38.49 ID:SXyIy3pf.net
- 求人ねえかなあ…
- 852 :デフォルトの名無しさん:2021/03/16(火) 16:47:09.56 ID:SXyIy3pf.net
- lisperを集めてもみんな船頭になりたがる人種だから川渡れないよなあ
伝説的なプロジェクトは大体少人数ってのが裏付けている、気がする
- 853 :デフォルトの名無しさん:2021/03/16(火) 17:51:29.58 ID:le9BGxml.net
- 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自体は特に何も出ていませんでした。
- 854 :デフォルトの名無しさん:2021/03/16(火) 20:24:15.22 ID:SXyIy3pf.net
- うちはsbclなんであれだがSBCL_HOMEみないな名前の環境変数は.../lib/sbclをちゃんと指してるか?
- 855 :デフォルトの名無しさん:2021/03/16(火) 20:51:54.59 ID:le9BGxml.net
- ttps://github.com/Clozure/ccl/releases
ここを見る限りは必要ないみたいです
ほとんどは参照に成功しているようでLoadingとCommpilingが繰り返されてますね
さっきから調べてますがちょっとこれ手に負えないですわ・・
- 856 :デフォルトの名無しさん:2021/03/16(火) 21:47:53.48 ID:Rsbfm/u/.net
- そもそもどういう環境なのか書いて欲しい
エスパーするにも限度があるぞ
- 857 :デフォルトの名無しさん:2021/03/16(火) 21:56:26.16 ID:le9BGxml.net
- すみません
high sierra 10.13.6 です
経験なさすぎて手に負えません
先輩方お願いします
- 858 :デフォルトの名無しさん:2021/03/16(火) 22:14:38.72 ID:5EsGrMIo.net
- 趣味悪いやつがどこまでエスパーできるか試してるようにしかみえん・・
- 859 :デフォルトの名無しさん:2021/03/16(火) 22:19:17.23 ID:oighJobp.net
- どうやってインストールしたん
CCLのバージョンは
なんでCCLの再ビルドしたん
- 860 :デフォルトの名無しさん:2021/03/16(火) 22:31:08.36 ID:le9BGxml.net
- 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はビルド以外の提供がなかったからビルドしただけで他意はないんです
- 861 :デフォルトの名無しさん:2021/03/16(火) 22:34:20.43 ID:Rsbfm/u/.net
- lisper だけにエスパーは得意でございます
お後がよろしいようで…
つか、なんかcclのページに何か不安なこと書いてるね
Unfortunately, on Windows and macOS Catalina, (rebuild-ccl :full t) will not work.
- 862 :デフォルトの名無しさん:2021/03/17(水) 02:23:28.92 ID:IQD2IzZ+.net
- >>860
たまたまうちの環境も 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") の場所にファイルがあれば何も問題ないはず
- 863 :デフォルトの名無しさん:2021/03/17(水) 05:48:07.88 ID:kb+CEO2s.net
- >>862
なるほど実は(rebuild-ccl :clean t)は必要なかったんですかね
気を取り直してCCL本体はmakeせずrebuildも打たない形にしてみたんですが
やっぱりdexadorは同じところで止まるようです
しかしCCLで動いている方もいるようなので(>>841)
こうなるとますますわかりません
何か設定がおかしいのか、足りないのか・・
とりあえず現状で:F 1から:F10まで追ってみたんですが
SSLっぽい引数が全部NILってことに気づいてSSLをしくっている可能性を考えました
internet-familyはIPv6/IPv4に対応しているような感じは受けますがそこはまずおいておいて
IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
- 864 :デフォルトの名無しさん:2021/03/17(水) 05:57:38.64 ID:kb+CEO2s.net
- (続き)
こうなると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に頼っていいのかどうかわからなくなってきました
- 865 :デフォルトの名無しさん:2021/03/17(水) 06:03:28.42 ID:kb+CEO2s.net
- >>863のリンクを間違えました
誤 IPv4を返しているwww.niconico.jpをgetさせたらkilled: 9でCCL自体落ちました
正 IPv4を返しているwww.nicovideo.jpをgetさせたらkilled: 9でCCL自体落ちました
- 866 :デフォルトの名無しさん:2021/03/17(水) 10:33:15.58 ID:IQD2IzZ+.net
- >>863
High Sierra + CCL 環境で問題なくgetできてるよ
quicklisp周りのアップデートしたら直るんじゃないかな
- 867 :デフォルトの名無しさん:2021/03/17(水) 11:20:35.79 ID:e+VOZDZq.net
- 環境構築めんどくせえからxyzzyかPortacleでいいや
- 868 :デフォルトの名無しさん:2021/03/17(水) 11:57:13.48 ID:eAjGywmP.net
- lisp.orgなる良いドメイン確保してるの初めて知った…
stanfordのjmcのhpへのリンクがあるだけ?
(いまお外でスマホブラウザftpできない)
- 869 :デフォルトの名無しさん:2021/03/17(水) 12:14:26.44 ID:nm2OeIl9.net
- ubuntsu で普通にaptでsbcl落とせたはず、ccl は知らんけど
850のコメントが正しいと思う、usocket が壊れてるとかかな
- 870 :デフォルトの名無しさん:2021/03/17(水) 12:30:51.87 ID:kb+CEO2s.net
- やってみました
? (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の管理には入っていないと思うのですがこれを組み込むべきと言うことでしょうか?
- 871 :デフォルトの名無しさん:2021/03/17(水) 16:11:31.69 ID:IQD2IzZ+.net
- >>870
あと考えられるのは
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でも拒否られた ってのはアテにならない気がする
- 872 :デフォルトの名無しさん:2021/03/17(水) 16:20:38.24 ID:MY4kqLB8.net
- ああ、qlはssl対応してないんだっけな(遠い目)
永久にβ版
- 873 :デフォルトの名無しさん:2021/03/17(水) 20:29:18.59 ID:IQD2IzZ+.net
- >>870 あと 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との性能差は体感では分からなかった
- 874 :デフォルトの名無しさん:2021/03/17(水) 21:56:44.29 ID:kb+CEO2s.net
- >>871
libcryptoとlibsslは自分でビルドしたのを/usr/local/libに置いてます
そんなに古いわけじゃないとは思うんですが早速更新して見ます
SSL関係はCLの標準ライブラリとして持ってるものだと思ってました・・
- 875 :デフォルトの名無しさん:2021/03/18(木) 00:04:37.76 ID:txHaGLQk.net
- うーんだめでした
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")
とかやってます
- 876 :デフォルトの名無しさん:2021/03/18(木) 00:17:32.21 ID:3weRgygV.net
- そんなにこだわることかね?安定版、あわよくばプリコンパイル済の入れて差分は手動パッチの方が楽じゃないの
俺なんか素のリスプイメージから10代くらいsave-lisp-and-dieし続けた秘伝のイメージだから、もはやどうやって再現していいのかわからん
- 877 :デフォルトの名無しさん:2021/03/18(木) 00:26:02.89 ID:txHaGLQk.net
- 特にmakeせずgitでプリコンパイルされているものを使ってもだめなのでよくわからないんですよね
common lispの環境もよくわかっていないので問題解決もままならないです
OpenSSLは正しく/usr/local/libに入っているのを確認しているのでそこは大丈夫なはずですが
何かしらの理由で読んでいないとかだとまずいですねえ・・
- 878 :デフォルトの名無しさん:2021/03/18(木) 00:27:52.12 ID:MFTfSoUk.net
- >>876
それはそれでダメだろw
再現できる環境作れなきゃ、時代遅れ過ぎる
- 879 :デフォルトの名無しさん:2021/03/18(木) 00:31:03.23 ID:3weRgygV.net
- 愛着が湧いてくるのです
- 880 :デフォルトの名無しさん:2021/03/18(木) 02:31:51.99 ID:TYZwFG+5.net
- >>877
あと思いつくのは
・コンパル済みキャッシュ
念のため真っさらに
rm -rf ~/.cache/common-lisp/ccl-1.12-f98-macosx-x64
・Fink, MacPorts, Homebrew 経由の古い libcrypt.dylib, libssl.dylib
こいつらは /usr/local/lib/* より参照優先度が高い ( sbcl だと大丈夫な理由が分からんけど )
インストールした覚えがなくてもチェックしときましょうか
とか?
- 881 :デフォルトの名無しさん:2021/03/18(木) 07:21:38.54 ID:0KnUd1t3.net
- ld.conf.d とか変に弄ったのを忘れてるに一票
- 882 :デフォルトの名無しさん:2021/03/18(木) 14:14:43.37 ID:txHaGLQk.net
- >>880
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によってエラーになったりならなかったりよくわからないですね
>>881
特に触っていないと思います
この間始めたばかりの素人なのでインストールガイドに書いてあることくらいしかできてないのです
そういうわけなので設定とかもしかしたら必要なのかもしれませんが全くやっていません
- 883 :デフォルトの名無しさん:2021/03/18(木) 15:56:19.49 ID:TYZwFG+5.net
- システム標準の "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 ... ) ができました
>>882
/usr/local/lib/ にインストールしたOpenSSL は大丈夫なはず!
かどうかは分からないので同じように試してみるといいかもしれない
- 884 :デフォルトの名無しさん:2021/03/18(木) 16:03:33.65 ID:eM8QRv2l.net
- 動いてないの質問者1人で動いてるやつ3人くらいいる状況だと質問者の環境がおかしいとしか・・
- 885 :デフォルトの名無しさん:2021/03/18(木) 18:48:43.68 ID:txHaGLQk.net
- >>883
このように変えてみました
(: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を評価していないんじゃないかとも思うのですがやり方がわからないです
>>884
多分そうなんじゃないかと思うんですが初心者すぎてどうにもならないです
お手数かけます先輩方
- 886 :デフォルトの名無しさん:2021/03/18(木) 19:55:32.23 ID:TYZwFG+5.net
- >>885 のパターンだと /usr/local/lib にインストールしたやつ「だけ」がロードされる状態になってる
俺が言いたかったのは そいつが悪い (CCLと相性が悪い?) んじゃないかということ
本当に CCL がこの reload.lisp を読み込んでいるのか気になるなら
まず全部に x つけて ( "x/usr/local/lib/libssl.dylib" みたいに ) から quickloadしてみればいい
リストに合致する dylib がねーよ...と文句言われればOK
- 887 :デフォルトの名無しさん:2021/03/18(木) 20:50:01.39 ID:eM8QRv2l.net
- Lisp以外は初心者だと思ってないから環境初期化して試さないんでしょ?
デフォ環境からカスタマイズどれくらいされてるかわからん状態でエスパーする意味ある?
手元ではappストアで配布のcclとhomebrewのデフォルトインストールのsbclで動いてるよ
usocketの環境問題の切り分けならsbcl試すべきでしょどっちもだめならlisp以前のもんだい
- 888 :デフォルトの名無しさん:2021/03/18(木) 21:25:00.91 ID:txHaGLQk.net
- >>886
やってみようと思ったんですがちょっとやり方がわからないです
というのも
~/quicklispが作られるのが
ccl ―load quicklisp.lisp
? (quicklisp-quickstart:install)
の後で
software以下のディレクトリができるのが
(ql:quickload :dexador)
の後なので
これ以降の修正しかできない感じです
どうしたらいいでしょうか
>>887
sbclだと動いてます
毎回quicklispは消してやってるので環境初期化は大丈夫だと思うんですが
皆さんには常識のこととか多分私にはわかってません
- 889 :デフォルトの名無しさん:2021/03/18(木) 21:30:32.20 ID:txHaGLQk.net
- あとはすごく気になるのが
quicklispのインストールが終わった後で
CCLを(quit)してしまうと
ccl ―load quicklisp.lisp
をやっても(ql: を評価しないし
(load #P で~/quicklispのsetupを読み込むとそこで止まります
インストール後なら(ql: は使えるのでdexadorは読み込めるんですが・・
- 890 :デフォルトの名無しさん:2021/03/18(木) 22:02:51.90 ID:ESPdjtZ2.net
- もしかしてスレ建て以来最高に盛り上がってる?
次スレ必要?
- 891 :デフォルトの名無しさん:2021/03/18(木) 22:28:06.14 ID:0KnUd1t3.net
- >>890
早いよw
普通に環境依存の話だろうね
既に指摘されてるけど初心に返って、
環境変数全部見直すか、
タイムマシーンで以前の状態に戻すとか、
新規にユーザ作ってそれで試すとか、
そこら辺をちゃんと地道にやるしかないと思うよ
- 892 :デフォルトの名無しさん:2021/03/18(木) 22:39:03.34 ID:txHaGLQk.net
- >>891
質問する前から新規ユーザーで既にやってました
その辺は言われることなので
環境変数とかもそんなわけでライブラリパス以外は割とスカスカですね
lisp関係はここに出ている作業くらいのものなので
lisp関係の細かい設定とかそういうのは一切やってないんですよね
そういえばsbclに関して思うことがありますが
あれはOpenSSLを更新する前にビルドしてあったものですねえ・・
- 893 :デフォルトの名無しさん:2021/03/18(木) 22:54:57.42 ID:0KnUd1t3.net
- >>892
おっと失礼した
そこまでちゃんと分かってるなら後は、
変えてないつもりのものとか、
動いているつもりのものを疑ってみることを
勧めるよ
- 894 :デフォルトの名無しさん:2021/03/18(木) 23:19:23.97 ID:txHaGLQk.net
- うーん・・調べてはいるんですが手がかりがあまりにもなさすぎて
どう手をつけたものかって感じです・・
git版でも動くようなのでなぜこうなるのかますますわかりませんが・・
- 895 :デフォルトの名無しさん:2021/03/19(金) 02:10:05.85 ID:6x0jzlEw.net
- >>888
> software以下のディレクトリができるのが
> (ql:quickload :dexador)
> の後なので
> これ以降の修正しかできない感じです
「これ以降の修正」それでいいんです
(quit)状態で 修正して、起動して (ql:quickload :dexador) すると
依存するパッケージのソース変更を自動察知してコンパイルが走りますんで
今回のが openssl に起因する問題なのか不明だけど
縁の下なライブラリを自力で makeインストールするのはあまりオススメできませんね
脆弱性報告を随時チェックして...
configure オプションの推奨設定なんかを毎回調べて...
依存するライブラリ/プログラム群を必要に応じてアップデート ...
それらが Homebrew のアップデートコマンドを週一で叩くだけで済むならその方が良くないですか?
- 896 :デフォルトの名無しさん:2021/03/19(金) 03:54:01.31 ID:RMQx/osX.net
- マカーでないのでよく分からんが、うちの界隈で新しいマックはdll(dylibっていうんだっけ?)の仕様代わって大変ってどこかで聞いた
invarid/unsafe accessとかそんな感じのエラー吐いてない?
相対パスの使用が厳しくなって怒られるらしい、ブロブをsls(macだとgrep?)に掛けてパスっぽいものを絶対パスに置換するだけでよいらしいが
- 897 :デフォルトの名無しさん:2021/03/19(金) 09:10:11.27 ID:cqWDT3jG.net
- 細かいところから
>>889
> 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を読み込むとそこで止まります
止まるわけないんだけどなあ。止まるってどういう意味でしょ。かっこの閉じ忘れとかじゃないよね。
- 898 :デフォルトの名無しさん:2021/03/19(金) 09:26:57.31 ID:cqWDT3jG.net
- >>885 で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"
- 899 :デフォルトの名無しさん:2021/03/19(金) 16:35:51.38 ID:0qPpyi/x.net
- 遅くなりましたすみません開始します
>>895
手順把握しました
makeに関しては昔MacPortsでやるとうまくいかないやつがちらほらあって
手動で細かく制御するとできるとかがあったのでそれっきりだったんですよね
今ではそんなこともないということでしたら考え直します
おすすめはhomebrewでしょうか?
>>896
high sierraなのでその辺は大丈夫なはず・・です
>>897
(load #P"~/quicklisp/setup.lisp")
これを実行するとそのまま止まって次のプロンプト(?)が出てこないんです
原因は全く不明なんですが
(ql:add-to-init-file) これはやってみます
- 900 :デフォルトの名無しさん:2021/03/19(金) 16:40:05.22 ID:0qPpyi/x.net
- >>898
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"
?
これは大丈夫そうですね
- 901 :デフォルトの名無しさん:2021/03/19(金) 16:49:39.87 ID:0qPpyi/x.net
- (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ライブラリを読むかどうかのチェックをしてみます
- 902 :デフォルトの名無しさん:2021/03/19(金) 16:58:13.55 ID:0qPpyi/x.net
- 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>
これは・・
再確認します
- 903 :デフォルトの名無しさん:2021/03/19(金) 17:00:59.35 ID:0qPpyi/x.net
- 更新して書き換えられたかもと思いましたがそんなことはなかったようです
reload.lispはこのようになっていました
(:darwin (:or "x/usr/local/lib/libcrypto.dylib" ;; personalized install
))
・・中略・・
(:darwin (:or "x/usr/local/lib/libssl.dylib" ;; personalized install
))
手がかりになるでしょうか?
- 904 :デフォルトの名無しさん:2021/03/19(金) 17:22:35.07 ID:0qPpyi/x.net
- ~/.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>
ここは変わりませんでした
- 905 :デフォルトの名無しさん:2021/03/19(金) 18:14:15.37 ID:6x0jzlEw.net
- >>903 これは予想がつく
こっちでも試してみたんだが ql:quickload の挙動は
○○○.lisp のタイムスタンプが コンパイル済みファイル ( ~/.cache/. . ... . . /○○○.dx64fsl )
よりも「新しくなった時」に ソース変更あり!と判断しているようだ
つまりまだ「新しい」reload.dx64fsl がキャッシュにあるのでそれをロードして何も変化が起きなかったんだろうなと
準備しておいた 改変済み reload.lisp (古い) に差し替えじゃなくて
生で置かれた reload.lisp を直に編集して保存 (新しい) しとけば良かったと
だとしても >>904 の説明がつかん
そちらの手順に何か勘違いがあるんじゃないかな
- 906 :デフォルトの名無しさん:2021/03/19(金) 18:30:33.54 ID:6x0jzlEw.net
- 繰り返しになるけど、まずは
(: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"))
これで試してみましょう
- 907 :デフォルトの名無しさん:2021/03/19(金) 19:41:49.55 ID:0qPpyi/x.net
- >>905-906
手順に気をつけてもう一度やって見ました
まずは.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>
こうなるようです・・
- 908 :デフォルトの名無しさん:2021/03/19(金) 19:45:45.88 ID:0qPpyi/x.net
- 思ったんですが
どの変数がpathを握っているのか表示できないものでしょうか?
- 909 :デフォルトの名無しさん:2021/03/19(金) 21:08:00.19 ID:OkAVL8Bz.net
- 結局何がしたくて、何が出来てて、何が出来てないんだっけ?
- 910 :デフォルトの名無しさん:2021/03/19(金) 21:13:21.69 ID:RMQx/osX.net
- 普段過疎ってるのに急に優しさに満ちたな…
ついでに興味深いレスも書き捨ててってよ
- 911 :デフォルトの名無しさん:2021/03/19(金) 22:35:05.73 ID:0qPpyi/x.net
- >>909
まずはCCLでdexador動くところまでですかね・・
CCLはObjCのインターフェース持っててnibも読めるので
ネイティブアプリのように振る舞えるかなと思いまして
今の問題が解決したら進めてみようと思ってます
毎日お手数おかけします先輩方
ほんとすいません
- 912 :デフォルトの名無しさん:2021/03/19(金) 22:41:03.30 ID:CjYMRRBz.net
- >>900
これ試してっていってるのとちがうくないん?
usocket:socket-connectのほうでしょ
- 913 :デフォルトの名無しさん:2021/03/19(金) 23:00:48.11 ID:6x0jzlEw.net
- >>907 これでとりあえず openssl は無罪だったと思っていいのかな
>>908
ちょっと意味が分からないけど
この先はエラー発生時の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 ...
結構大変そう
>>910
優しさというか
未知のトラブルの際に実際どうするのが正解なのか自分も知りたいだけっすね
なので「なんか分からんうちに治りましたあw」で終わられても困る
- 914 :デフォルトの名無しさん:2021/03/19(金) 23:10:41.34 ID:0qPpyi/x.net
- >>912
すいません見落としてました
[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がオリジナルでも改変でも変わらないようです
- 915 :デフォルトの名無しさん:2021/03/19(金) 23:16:50.39 ID:0qPpyi/x.net
- >>913
うーん・・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だとどうなんでしょう
でもこれ明らかに外部ライブラリ呼びに行ってしくってる感じですねえ
- 916 :デフォルトの名無しさん:2021/03/19(金) 23:18:31.64 ID:qP05xHwq.net
- >>914
ここやん
- 917 :デフォルトの名無しさん:2021/03/19(金) 23:38:05.76 ID:6x0jzlEw.net
- うちの環境だと
# 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
>>915 そちらで
nm /usr/local/lib/libssl.dylib | grep SSL_get_peer_certificate
を叩くとどう出ます?
- 918 :デフォルトの名無しさん:2021/03/19(金) 23:41:24.44 ID:0qPpyi/x.net
- >>917
早速やって見ましたが何も出ません
もしかしてこれですかね
- 919 :デフォルトの名無しさん:2021/03/19(金) 23:43:05.81 ID:6x0jzlEw.net
- 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 の問題で解決ならもう↑これは不要かな
まあ面白かったから気にしないでくれ
- 920 :デフォルトの名無しさん:2021/03/19(金) 23:43:16.86 ID:0qPpyi/x.net
- /usr/local/libで参照先を見ました
libssl.dylib -> libssl.3.dylib
調べたら3.0.0 alphaになってますねOpenSSL
もしかしてこのせいですかね
- 921 :デフォルトの名無しさん:2021/03/19(金) 23:44:59.22 ID:0qPpyi/x.net
- もう少し教えてください
おすすめはhomebrewってことでいいでしょうか?
- 922 :デフォルトの名無しさん:2021/03/20(土) 00:08:21.55 ID:SWqHaUsq.net
- 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 の選択もアリだと思います
- 923 :デフォルトの名無しさん:2021/03/20(土) 00:46:30.47 ID:ABymnbS3.net
- わかりましたそうしたら・・
とりあえず1.1.1jをmakeしてみます
明日また報告します
いつもありがとうございます
- 924 :デフォルトの名無しさん:2021/03/20(土) 02:09:09.50 ID:SWqHaUsq.net
- 一番先に試すべきは 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 がどこにも見つからねーよ... と 別のエラーが生じたと
雑だけど大体当たってるんじゃないかな
- 925 :882:2021/03/20(土) 03:09:12.75 ID:2VI0Nxdp.net
- >>914 見る限り、 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>
- 926 :デフォルトの名無しさん:2021/03/20(土) 16:30:52.27 ID:ABymnbS3.net
- 遅くなりました
>>924
/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自体落ちるようです
- 927 :デフォルトの名無しさん:2021/03/20(土) 16:35:31.22 ID:ABymnbS3.net
- >>925
現在/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のビルドしてきます・・
- 928 :デフォルトの名無しさん:2021/03/20(土) 17:01:19.75 ID:ABymnbS3.net
- 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はありますね
- 929 :デフォルトの名無しさん:2021/03/20(土) 17:09:57.89 ID:ABymnbS3.net
- キャッシュを消して
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が落ちました
- 930 :デフォルトの名無しさん:2021/03/20(土) 17:15:43.39 ID:ABymnbS3.net
- CCL本体でSSL関係を静的リンクしているかチェックしてみましたが
そのようなことはありませんでした
うーん・・
- 931 :デフォルトの名無しさん:2021/03/20(土) 17:27:17.85 ID:ABymnbS3.net
- 念のため
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
- 932 :882:2021/03/20(土) 22:06:24.57 ID:2VI0Nxdp.net
- >>927 見ると 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")
- 933 :デフォルトの名無しさん:2021/03/20(土) 22:34:20.86 ID:ABymnbS3.net
- >>932
やってみました
通常通り初期化、同条件の/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>>
?
成功したように見えます・・!
- 934 :882:2021/03/20(土) 23:37:46.40 ID:2VI0Nxdp.net
- >> 917 それはよかった。
917の環境は、 "ja.wikipedia.org" が IPv6 アドレスに解決されるのにそれを使って connect すると失敗するという状態なんだろうか。知らんけど。
IPv6 で繋がらない原因は Lisp の範疇じゃないし、917自身がネットワーク設定を見るしかないと思う。
あと ccl で IPv6 を常に抑制したいというなら、 ccl の起動時読み込みファイルに同じ設定を書き込む必要があると思う。
~/.ccl-init.lisp に、以下の式:
(setf *features* (delete :ipv6 *features*))
を追記しとけば IPv6 を抑制できて暫定措置になるんじゃないの。
- 935 :デフォルトの名無しさん:2021/03/20(土) 23:49:08.72 ID:ABymnbS3.net
- >>934
なるほど・・
早速調べます!
- 936 :デフォルトの名無しさん:2021/03/21(日) 00:33:41.74 ID:kaM5HUhB.net
- >>934
調べてはいますがおそらくその通りだと思います
ifconfigでIPv6アドレスを持っていてIPv6パススルーも生きていることはわかったのですが
httpsに関してはIPv4しか通らないようです
DNSはIPv6を返します
問い合わせないといけないかもしれないので時間かかります
また報告しますすいません・・
- 937 :デフォルトの名無しさん:2021/03/21(日) 10:38:06.62 ID:37bhr7Il.net
- 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では大丈夫だったのに」の謎はこれで解けた
- 938 :デフォルトの名無しさん:2021/03/21(日) 10:45:31.91 ID:Duyg5pmm.net
- 迂闊なアップデートは止めましょう、パッケージマネージャはあんまり信用しないように、ということで
俺はそのままでいいや…
- 939 :デフォルトの名無しさん:2021/03/21(日) 11:16:39.08 ID:Zc1ZeEs5.net
- >>937
乙
つまりipv6で問題あったってことか
やはりソースは追ってみるもんだなぁ
- 940 :デフォルトの名無しさん:2021/03/21(日) 14:51:41.93 ID:kaM5HUhB.net
- ネットワーク環境についてなんですが
こちらの設定だけでは改善できないことがはっきりしましたので
問題点も明らかになっていることから、今回の質問については終了したいと思います
粘り強く対応して頂いた先輩方には感謝しております
こちらの不手際のせいで巻き込んでしまってすみませんでした
ありがとうございました
次へ進みたいと思います
- 941 :デフォルトの名無しさん:2021/03/21(日) 15:35:24.92 ID:37bhr7Il.net
- >>940 ちょっと待ってくれー
(openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
そちらでこれ↑はどういう値が返ってきますか?
こちらの環境では #<IP4-SOCKET-ADDRESS 133.152.43.29:443> つまり ipv4 で返ってくる (※)
もし ipv4 で Kill: 9 になる ( >>929 ) なら ipv6 とは別の問題も抱えてるって話になります
分かったところで何ができるよ?と思われるかもしれませんが、少し気になってました
※ そしてキー値引数 :ADDRESS-FAMILY :internet6 を追加すると ipv6 になる
wikipedia.org だとデフォールトで ipv6 ( DNS の返答順に差があるんですかね )
- 942 :デフォルトの名無しさん:2021/03/21(日) 15:43:10.50 ID:kaM5HUhB.net
- >>941
そうでした
killed:9の問題は忘れてました
? (openmcl-socket:resolve-address :HOST "nicovideo.jp" :PORT 443 :SOCKET-TYPE :STREAM)
#<IP4-SOCKET-ADDRESS 133.152.43.29:443>
/usr/lib参照の設定だとこうなりますね
- 943 :デフォルトの名無しさん:2021/03/21(日) 16:05:38.47 ID:37bhr7Il.net
- >>942
ほんと分かったところで何もできないけど、とりあえず確認ありがとう
- 944 :デフォルトの名無しさん:2021/03/21(日) 17:17:04.97 ID:kaM5HUhB.net
- いえいえそんな
いつもありがとうございます・・
- 945 :882:2021/03/21(日) 19:09:29.26 ID:rYTEFRj1.net
- >>941-942
俺の環境でも "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 のバグっぽい気がする。
もう少し調べてみて必要なら本家に報告するわ。
- 946 :925:2021/03/21(日) 19:41:51.58 ID:37bhr7Il.net
- >>945 同じ手順で "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が処理しきれる上限はもっと低いんですかねえ
- 947 :デフォルトの名無しさん:2021/03/21(日) 20:01:40.07 ID:kaM5HUhB.net
- >>945
? (ql:quickload "dexador")
To load "dexador":
Load 1 ASDF system:
dexador
; Loading "dexador"
.Killed: 9
同手順で落ちました
てっきり自分の環境でしか起きないものかと思ってたんですがまだ色々ありそうですねこれ
>>946
私のはこうなってます
ulimit -n
10000
ulimit -u
2048
自分のはかなり前にファイルを大量に扱わねばならない時があったので変更していたのを思い出しました
- 948 :882:2021/03/21(日) 21:05:00.56 ID:rYTEFRj1.net
- >>946
>>947
ありがとう。これだけ再現するってことは本当にバグを見つけたのかもね。
俺の方では、 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のソースを見るのは初めてだから時間がかかると思うけど、もう少し調べてみるわ。
- 949 :デフォルトの名無しさん:2021/03/21(日) 22:01:07.16 ID:37bhr7Il.net
- あぁこれ 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)
... .. .
さっぱり意味は分からないけどシステムを怒らせたっぽい事は伝わってきます
禁忌に触れようとした的な?
- 950 :882:2021/03/22(月) 17:08:00.67 ID:VLZSjRi0.net
- パッチ書いてプルリク出してみた。
https://github.com/Clozure/ccl/pull/362
>>949 のいうようにクラッシュレポート見たら、俺の環境でも close で死んでた。
色々調べたけど、どうやら CCL の GC が close 済みのFDをもう一度 close しようとすると死ぬっぽい。
(ただ、close 済み FD を二回 close する簡単な C プログラム書いて実験しても、 EBADF が返るくらいで kill されたりはしないんだよね・・このあたり微妙。)
そんなわけで close 済み FD を参照する一時オブジェクトをエラー時に解放するよう unwind-protect したら直ったっぽく見えたのでPRにしてみた。
(932 では struct sockaddr_in が・・とかヌカしてたけど、さすがにこれは無かった。俺の杞憂だったわ。)
- 951 :デフォルトの名無しさん:2021/03/22(月) 18:59:19.52 ID:1u7lgsAW.net
- >>950
GJ!
オレは完全に環境依存の話かと思い込んでたわ、
すまんかった…反省する
- 952 :デフォルトの名無しさん:2021/03/22(月) 21:16:42.30 ID:5gvxkT8z.net
- >>950 あなたは偉い!
全く別件ですが詳しい方々に質問です
CCL で簡単な cocoa アプリを作ってみよう思い (require :cocoa) を評価すると Hemlock editor が立ち上がります
そのためのコンパイルとロードも毎回走ります
欲しいのは ns:ns-window とかなのに不要なエディタを除外したアプリは作れないのでしょうか?
- 953 :デフォルトの名無しさん:2021/03/22(月) 23:32:09.69 ID:5gvxkT8z.net
- Hemlock editor てのは Clozure CL64.app を立ち上げると出てくるのと似たようなもんです、というか違いが分かりません
そっちの場合は 初めから (require :cocoa) された状態になってます
慣れの問題かもしれませんが、入力補完もhistoryも効かないこのエディタは使いづらいです
快適な Emacs+slime で作業してるのに (require :cocoa) で余計なのが立ち上がる、なんなんだコレはと思ってしまいます
- 954 :デフォルトの名無しさん:2021/03/23(火) 06:52:29.03 ID:p/UYSc/L.net
- あのエディタは必要なのか必要でないのかよくわからないんですよね
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))
で初期化して表示できるとなってますがこちらでは動かないんですよね
色々とわかってないことが多いので地道に調べてます・・
- 955 :936:2021/03/24(水) 14:30:11.89 ID:aesCgSqt.net
- あれから試行錯誤してみましたが
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:")
のように書き換えてやると動きます
- 956 :デフォルトの名無しさん:2021/03/24(水) 15:23:03.24 ID:aesCgSqt.net
- それと (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)は出来ても実行できない、エラーを見るとイメージが見つからない、
じゃあ手動で作ればいいのか? 保存できないじゃん... という循環です
- 957 :デフォルトの名無しさん:2021/03/24(水) 19:24:39.27 ID:yxGjMjcv.net
- CCLのメーリングリストでやったら?
もし有益な情報だったらここに書かれててもCCLユーザーは目にすることはないし
逆にここでやられてもCCLでapp作るっての長々やられても正直うざい
- 958 :デフォルトの名無しさん:2021/03/24(水) 20:15:36.43 ID:pUd7W5mz.net
- いいじゃない、過疎スレなんだし
- 959 :デフォルトの名無しさん:2021/03/25(木) 18:41:24.49 ID:vJV70gDt.net
- lispを会社で使ってる人は何に使ってるの?
- 960 :デフォルトの名無しさん:2021/03/25(木) 22:47:02.90 ID:yPj3FOep.net
- Clojureが一番多いだろうけど、結局Web関連が大半だろうな
- 961 :デフォルトの名無しさん:2021/03/27(土) 11:00:58.43 ID:Jp3H832r.net
- 会社の仕事で使わせようとするとこは地雷っぽく感じる
Lisperが集まった少人数ベンチャーでもなければ、普通は採用言語とはならんて
- 962 :デフォルトの名無しさん:2021/03/27(土) 20:32:02.20 ID:uSYmOJju.net
- 速さが必要なとこはC++UIはC#
設定とか外部ファイルはjson
- 963 :デフォルトの名無しさん:2021/04/20(火) 08:52:04.97 ID:gd1FBcQ1.net
- Steele御大がカバーに推薦文書いてるからってclでHacker's Delight一通りなぞったけど
dpb, deposit-field, log~, boole-~,bit-vector...
clの無駄に細かく柔軟なbyte/bit関数がめっちゃ生きるなこれ
byte-specのおかげで32bit想定で16進定数まみれのc(っぽい)サンプルコードがキレイになる
変なビット幅使ったら性能は察しだけども
4bit整数のboole-定数も真理値表とcltl2、(hsによれば処理系定義だけど)処理系毎に思想が見えて面白い
- 964 :デフォルトの名無しさん:2021/04/20(火) 08:53:47.98 ID:gd1FBcQ1.net
- byteはsize, pos, stepの3タプルだったら、もっと良かったかもな
- 965 :デフォルトの名無しさん:2021/05/22(土) 14:57:49.72 ID:AMGDOUSM.net
- lispで構造体の配列はどの様に宣言するのですか。
教えてください。
- 966 :デフォルトの名無しさん:2021/05/22(土) 16:58:24.32 ID:ihqr331W.net
- 構造体の型を :element-type に指定して make-array するとか。
standard-object の配列を作るなら
(make-array 42 :element-type 'standard-object)
- 967 :デフォルトの名無しさん:2021/05/23(日) 05:05:37.98 ID:wE2/zz8j.net
- nconcとかの最初のnってなんの意味?
破壊系は大抵nがついてるようだけど
- 968 :デフォルトの名無しさん:2021/05/23(日) 14:54:18.11 ID:jMJ3NfPq.net
- 実践Common Lispにはnon-consingを意味すると書いてあるな
- 969 :デフォルトの名無しさん:2021/05/28(金) 00:46:31.60 ID:EJmsk1LE.net
- クロージャー?判ってなさそうなミスして困った
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 が初期化されずに値をキープするので
呼ぶ度に増えてしまう
どう定義すればリセットされるのだろうか?
- 970 :デフォルトの名無しさん:2021/05/28(金) 02:28:07.56 ID:yF2ZDltE.net
- なんでcounterをdefparameterで定義してるの?
- 971 :デフォルトの名無しさん:2021/05/28(金) 03:05:24.01 ID:mAlT95oI.net
- copy-tree 使うとか
https://pastebin.com/69r3fbZH
- 972 :デフォルトの名無しさん:2021/05/28(金) 08:27:58.85 ID:EJmsk1LE.net
- >>970
実践 Common Lisp に
>この2つのフォーの違いは
>DEFPARAMETER は評価されるたに常に初期値を代入し、
と書いてあったから
2回目移行の関数呼び出しの時に初期値代入してくれることを期待していた
>>971
thanks
copy-tree 始めて見た
- 973 :デフォルトの名無しさん:2021/05/28(金) 10:06:56.31 ID:9zUWEJUi.net
- >>972
よくわかってないけど、defunの中のdefparameter はただのletじゃだめなの?
トップレベルとそうでない場所でのdefparameter は挙動が違うと思う
- 974 :デフォルトの名無しさん:2021/05/28(金) 13:02:59.14 ID:3GRY8xg9.net
- リテラルオブジェクトを破壊的に変更した結果が未定義だからだね
- 975 :デフォルトの名無しさん:2021/05/28(金) 20:43:19.98 ID:Kys4wuAq.net
- assoc cdr nth越しにfるアクセサ志向プログラミングが気になる
いや悪いと思わんよsetfパワーはclの売りだし
ただなかなか見たことないので感心?した
- 976 :デフォルトの名無しさん:2021/05/28(金) 22:27:22.42 ID:EJmsk1LE.net
- >>973
全然 let でいいですね
今回スコープ広くしなくていいし
>>975
コンソールで対話型のもの書くのにLispがエラー時に変数見れたり色々やりやすかった記憶があったので
ひさびさに Lispを選んだ
うる覚えなのでスタイルが面妖なことになってるかもしれないw
- 977 :デフォルトの名無しさん:2021/05/28(金) 23:07:39.31 ID:J0jB9cZZ.net
- グラフ探索でモノを見つけたら帰りがけに空リストへcar/cdrをpushしていくのはやったことあるな
(#'car #'car #'cdr ...)で表現したアドレスと値が帰ってくる(以下#'等省略)
値を処理したら(compose '(car car cdr...))でアクセス関数を生成してsetfで更新
なんで俺はそのノードへの参照を直接返さず無駄にリスト返したのか、と書いてて疑問に思ったけど思い出したわ
そのノードの周りをn階層刈ったり、途中の階層から相対アクセスしたかったんだ
(compose '(cons curried-butlast-n '(car car cdr ...)))
的な感じで
何れにせよcar/cdrがsetfableな恩恵だね
- 978 :デフォルトの名無しさん:2021/05/28(金) 23:14:25.26 ID:J0jB9cZZ.net
- リードした時点でcadaddadadaaaar自動生成みたいなしょうもないマクロをpaul grahamだったかで見た事あるけど、もしかしてこれ使えるかも?
a/dを文字列ででも返して、それを関数として使いたい時だけcとrで挟んでinternする感じで
- 979 :デフォルトの名無しさん:2021/05/28(金) 23:53:54.41 ID:Kys4wuAq.net
- 効率は悪そうだけどとてもlispらしい
placeだけダイナミック変数に確保したとしても、誰から指されてるか(親)は経路を何らかの方法で保存してないと原理的に辿れない
(複数から指されている可能性もあるので)
順にスタック片付けずに一気に脱出したいところだけど、帰りにpushする為に必要なんだな
逆に次にアクセスするノードへのアクセサをpushする方法が考えられるけど、これなら見つかり次第アキュムレータ末尾再帰かthrow 'top/catchで帰れる
外れノードから戻る時にアクセサをpopするコストも負うけど…
とりあえず効率は無視して、外れノードから一段降りる時にアクセサをpopするのではなく、returnを積んでしまえば、探索のログとしてデバッグに役立ちそう
car cdrに加え、returnまで合成した関数がちゃんとsetfableかまではちょっと自信がない
- 980 :デフォルトの名無しさん:2021/05/28(金) 23:54:39.92 ID:Ti7fgoex.net
- 毎回二連投するやつ
- 981 :デフォルトの名無しさん:2021/05/29(土) 13:06:29.81 ID:/6seeUxq.net
- リスト上でreturnと直前の呼び出しを対消滅させて最適化するイメージは湧くが意外と面倒くさそう
returnが連続するケースにカウンタが要る
括弧のパースでよくやるロジックだけど
- 982 :デフォルトの名無しさん:2021/06/17(木) 12:59:58.49 ID:WewK95Ed.net
- CommonLispで小さなCLIプログラムを書く
Writing Small CLI Programs in Common Lisp / Steve Losh
https://stevelosh.com/blog/2021/03/small-common-lisp-cli-programs/#s1-requirements
- 983 :デフォルトの名無しさん:2021/06/17(木) 21:38:50.24 ID:PVkxN2pW.net
- >>982
CLISPさいつよ
- 984 :デフォルトの名無しさん:2021/06/22(火) 14:58:15.67 ID:9PZ+AdPA.net
- 「Common Lisp」って、市販の書籍を読んでも歴史や文法等の事は書いてあっても、
REPLで試せるだけで、コンパイルして実行可能ファイルを作る方法が不明だな。
ネットを調べてもコンパイルして実行ファイルを作成する情報が見つからない。
運良く見つかっても、商用系のコンパイラを使った場合の話だったりする事が多々有る。
- 985 :デフォルトの名無しさん:2021/06/22(火) 15:10:53.11 ID:YfWe7YWP.net
- 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
- 986 :デフォルトの名無しさん:2021/06/22(火) 15:18:09.43 ID:HykST2y2.net
- これが間違ったことを書いてツッコミを貰う式問題解決法ですか
- 987 :デフォルトの名無しさん:2021/06/22(火) 15:39:51.87 ID:pmPJw99A.net
- 処理系のマニュアルを見なさい
- 988 :デフォルトの名無しさん:2021/06/22(火) 15:45:43.42 ID:pmPJw99A.net
- 規格で決まってないし、そもそもバイナリに固めて配布する需要がそんなに無い
- 989 :デフォルトの名無しさん:2021/06/22(火) 15:53:42.26 ID:9PZ+AdPA.net
- >>988
save-lisp-and-die
これって、規格に含まれてないの?
バイナリに固めて配布する気はない、
自分で書いたLispプログラムを実行ファイル形式にしたいだけだ。
- 990 :デフォルトの名無しさん:2021/06/22(火) 16:00:31.34 ID:9PZ+AdPA.net
- 解っている人にしか理解不可能な会話をされたら、
新参者はちんぷんかんぷんですね。
- 991 :デフォルトの名無しさん:2021/06/22(火) 16:58:54.16 ID:r0WButOj.net
- SBCLではデフォルトで固めて実行ファイルを作れるが、サイズが最低でも40MBほどになる
SBCLビルド持にオプションを追加すると、圧縮した実行ファイルを作れる
それだと10MB程度になるから、まぁ現実的なサイズかなと
ちなみに圧縮されてても一瞬で起動するからデメリットは全く無い
- 992 :デフォルトの名無しさん:2021/06/22(火) 17:01:38.90 ID:pmPJw99A.net
- save-lisp-and-dieはsbcl系だろうか、sb-ext:とかそんなパッケージプレフィックス付いてない?
eclだとsaveinitmemだとかその辺はてんでバラバラ
自分の環境で素早くロードして実行したいのならそれでベストだと思うよ、メモリをダンプしたのをそのまま読み込むだけだから
ただし全部入りだから、ファイルサイズに気を付けてね
- 993 :デフォルトの名無しさん:2021/06/22(火) 22:34:00.44 ID:9PZ+AdPA.net
- >>985
わざわざ有り難うございます。
リンク先を参照して勉強します。
- 994 :デフォルトの名無しさん:2021/06/22(火) 22:44:48.17 ID:9PZ+AdPA.net
- >>992
コンパイラ毎に、バラバラだったんですね、
コンパイルして生成されるファイルは巨大ですね。
- 995 :デフォルトの名無しさん:2021/06/23(水) 00:56:32.49 ID:fcCuTY0O.net
- Common Lisperの7割以上が使ってると思われるSBCLの実行ファイルの作成に関して、具体的に書いた俺のレスは無視かよw
まともに聞く気が無いならもう来んなよ
- 996 :デフォルトの名無しさん:2021/06/23(水) 01:02:46.63 ID:p7QOUBen.net
- 老婆心だけど、プログラム事にコアイメージを量産するんじゃないぞ(違ったらごめん)
ライブラリや書いたコードの最適化コンパイル、実行時でなくてよい計算を済ませて、スクリプトを食わせる
- 997 :デフォルトの名無しさん:2021/06/23(水) 01:57:21.85 ID:p7QOUBen.net
- sbclなら常に関数をコンパイルしながら走るので、動的に関数生成するそこそこ規模ならお釣りが来るよ
実行時入力を与えて走らせればイメージが最適化されるので、そこをまたダンプ
熟成と呼んでる
パッケージマネージャ用に主なアーキテクチャ向けビルド作ってるけど、デバッガやrepl削るとffi関連のアップデートで泣く
- 998 :デフォルトの名無しさん:2021/06/23(水) 02:01:06.89 ID:p7QOUBen.net
- cl界隈はソース配布で自動ビルドがなかなか混沌としてるからな
- 999 :デフォルトの名無しさん:2021/06/23(水) 02:38:16.31 ID:bhqsYps4.net
- こんな時間になってしまった。おやすみなさい。
- 1000 :デフォルトの名無しさん:2021/06/23(水) 04:19:32.99 ID:GGzsHju7.net
- このスレ7年たつらしいけどLisp Schemeスレ一本に合流にして単独スレいらんのではないか
「いいものの本質は、いかなる時代においても変わらない」byパワーズのパワーズってなんなん?
- 1001 :デフォルトの名無しさん:2021/06/23(水) 13:25:52.20 ID:6jEPjWCz.net
- emacs lisp の方が実用化には成功しているのかも知れないぬ
- 1002 :デフォルトの名無しさん:2021/06/23(水) 19:50:01.92 ID:bhqsYps4.net
- 次スレはまだかな、
- 1003 :デフォルトの名無しさん:2021/06/23(水) 20:30:38.58 ID:bhqsYps4.net
- SBCL等のCommon-Lispでプログラムを作る際に、
ファイル若しくは画面にデバッグログを出力出来るライブラリの様なは無いのかな。
ググったり、Githubの中を探してたら、Log4CLってのを見つた。
- 1004 :デフォルトの名無しさん:2021/06/23(水) 20:45:03.00 ID:bhqsYps4.net
- いま、検索したら日本語で詳しく紹介してるブログを見つけました。
他にもロギングライブラリらしきものが存在するらしい。
- 1005 :デフォルトの名無しさん:2021/06/26(土) 19:10:53.28 ID:SGwHfoMZ.net
- transcriptって無かったっけ
そういうのじゃだめか
- 1006 :デフォルトの名無しさん:2021/06/26(土) 20:58:40.91 ID:3dvp5buX.net
- >>1005
dribble
正直開発時にログライブラリなんかいらんREPLある
- 1007 :デフォルトの名無しさん:2021/06/27(日) 13:56:15.17 ID:VKjGOwn5.net
- >>1006
REPL上でログ出力しても結構使えますよ。
ログレベルが選べるのが良いですね。
- 1008 :デフォルトの名無しさん:2021/06/27(日) 16:36:57.14 ID:KSONo++L.net
- ロガーとslimeが連携でもしてくれるのなら有用だと思うがそうじゃないならたいして使えるものではないな
コンパイラの警告,trace,breakはロガーライブラリを導入しなくても標準で使えるし,slimeと連携もする
- 1009 :デフォルトの名無しさん:2021/06/29(火) 12:36:19.72 ID:aO3q0Gho.net
- cdr
【入門】Common Lisp その12【質問よろず】
https://mevius.5ch.net/test/read.cgi/tech/1624937701/
- 1010 :デフォルトの名無しさん:2021/06/29(火) 18:57:39.59 ID:LZLMU7Fi.net
- >>1003
単に*debug/trace/error/standard...-output*へ自前のストリームをsetfすると画面への出力が食われるのかな?自前のreplはどう?色付けたり楽しいよ
(loop (funcall print-tee (funcall (eval (funcall read))))
print-teeで好きな標準ストリームをread-lineし、好きなところに書き込む
試してないので雰囲気だけ…(処理系のreplは裏で色々やってるので、それを元に改造するべき
- 1011 :デフォルトの名無しさん:2021/06/29(火) 22:07:45.60 ID:vAeooDjH.net
- >>1009
乙
- 1012 :デフォルトの名無しさん:2021/06/30(水) 18:24:48.68 ID:PhKPzjXz.net
- 一時期SBCL入れて入門していました。
取り敢えずチュートリアルサイトを途中までこなして、ふと(BASICで言う)ステートメントをダイレクト実行しかしていない事に気が付く。
しかもlistとかのダイレクトコマンド専門命令の説明がない。
ググって見付けたサイト覗いても、その辺りの説明がない。
いくら生まれが古くても、ここまで生き残った言語なら運用に不足がある訳ないのだけれど・・・。
- 1013 :デフォルトの名無しさん:2021/06/30(水) 19:57:21.11 ID:F+OSm5Af.net
- >>1012
> ステートメントをダイレクト実行しかしていない
これはreplでしかつかってないということなんだろうけど、
> しかもlistとかのダイレクトコマンド専門命令
これはなんのことなんだろう。
- 1014 :デフォルトの名無しさん:2021/06/30(水) 22:58:32.99 ID:uA4oH22P.net
- BASICがアマチュアプログラミングの標準だったのはかれこれ40年前ですよ・・・
LISPが古いのとは別次元で時代錯誤・・・
- 1015 :デフォルトの名無しさん:2021/07/01(木) 10:41:54.54 ID:8VUowwb0.net
- https://ameblo.jp/manofthaman/entry-12682504719.html
- 1016 :デフォルトの名無しさん:2021/07/01(木) 10:42:20.83 ID:8VUowwb0.net
- https://twitter.com/hashtag/%E7%BF%92%E8%BF%91%E5%B9%B3%E6%AD%BB%E3%81%AD
(deleted an unsolicited ad)
- 1017 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1017
303 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★