2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【入門】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 &amp;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


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 ★