◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【入門】Common Lisp その11【質問よろず】YouTube動画>1本 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1411307361/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2014/09/21(日) 22:49:21.73ID:FJokPHUt
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.66ID:NoTzw7Td
保守っとけ

3デフォルトの名無しさん2014/09/24(水) 05:53:21.05ID:jMNIys3U
僕のチンポの保守もして欲しいです

4デフォルトの名無しさん2014/09/27(土) 22:11:12.38ID:MwPKYdSn
CommonLispってもういらない子なの?

5デフォルトの名無しさん2014/09/27(土) 22:16:56.38ID:XRggRDkd
少なくとも俺はいる

6デフォルトの名無しさん2014/09/28(日) 01:52:26.39ID:ukluat85
もういらない子だと言われ続けて数十年

7デフォルトの名無しさん2014/09/28(日) 10:02:46.51ID:3fm9b2hk
CommonLispは無くなっても困らないけどs式使う言語が否定される訳じゃ無いからなー

GUIとかI/Oもちっと近代的に再定義できないもんかの>>CommonLisp

8デフォルトの名無しさん2014/09/28(日) 11:36:29.40ID:VPEqHLDK
なんでClojureはdoted pairなくしたんやろ
Symolic expressionはlinked cellが実体やないのか?
おかげでcar,cdrもないらしいやないか
それでもリスプの仲間かい!
レイプの間違いやないか?
エロいのうClojure

9デフォルトの名無しさん2014/09/28(日) 11:50:37.01ID:VPEqHLDK
consセルを次のように定義できるんやな
(define (cons car* cdr*)
(lambda (bool)
(if bool car* cdr*)))

で、かー、くだーや
(define (car cons-cell)
(cons-cell #t))

(define (cdr cons-cell)
(cons-cell #f))

わし、勉強したで
どや!

10デフォルトの名無しさん2014/09/28(日) 12:03:58.38ID:3fm9b2hk
>>8
Clojureはcons cellのあり方を変えてもLisp族であれると明確にしたんじゃないの?
実際Lispのdot pairってClojureでvector で2値持つのと何所が違うの?

11デフォルトの名無しさん2014/09/28(日) 12:36:35.15ID:iDFl5dY4
>>10
ワシにきくな!

12デフォルトの名無しさん2014/09/28(日) 12:37:33.56ID:3fm9b2hk
>>11
えー?
なんでわし怒鳴られてんのん?

13デフォルトの名無しさん2014/09/28(日) 12:50:00.26ID:iDFl5dY4
>>12
エヘヘ

14デフォルトの名無しさん2014/09/29(月) 15:39:11.02ID:EGBsxWNV
lispworks欲しい
実際emacs slime sbclとどれくらい違うんだろ

15デフォルトの名無しさん2014/09/29(月) 15:46:20.10ID:3Y1KoBbC
>>14
GUI使わないならLispWorksもEmacs+Slimeですよ。
ちなみにGUIつかうならフランツ買うべき

16デフォルトの名無しさん2014/09/29(月) 16:43:54.70ID:GUILLi5F
> GUI使わないならLispWorksもEmacs+Slimeですよ。
GUI使うよ

> ちなみにGUIつかうならフランツ買うべき
なんで?

17デフォルトの名無しさん2014/09/29(月) 17:11:50.09ID:3Y1KoBbC
>>16
とりあえずGUIで日本語使わないならLispWorksでも大丈夫だけど、GUI使うときに付属のエディタが多バイト文字対応してない>>LispWorks
Franzはそのあたり問題ないのとGUIのユーティリティーが凄い良くできてる。

でもお金無いのでFranzは評価版だけしか使ってないけどな!
エディタさえなんとかなるならLispWorks好きなんだけどな!

18デフォルトの名無しさん2014/09/29(月) 17:22:08.25ID:hqUDBNsI
lispworks6からUTF-8で表示で崩れもなく表示もできるし入力もできるよ.
common graphicsよりcapiの方が評判良いと思うけど.
lispworks7からjvmと連携するらしいよ.

19デフォルトの名無しさん2014/09/29(月) 17:22:59.09ID:GUILLi5F
やっぱり日本語がネックか
とりあえずfreeのacl使ってみる

20デフォルトの名無しさん2014/09/29(月) 17:23:29.98ID:GUILLi5F
lispworks買うことも視野に入れてみる

21デフォルトの名無しさん2014/09/29(月) 18:42:06.20ID:3Y1KoBbC
>>18
マジか!
マジならアップグレードするか

#という事を続けてAllegro購入とかわらんくらい突っ込んでるのがなっとくいかねー

22デフォルトの名無しさん2014/09/29(月) 18:43:04.57ID:3Y1KoBbC
>>18
jvm連携するくらいならClojreのIDEになってほしい orz

23デフォルトの名無しさん2014/09/30(火) 19:30:43.62ID:ReFtgmj2
Schemeに比べてCommon Lispの利点て何?

24デフォルトの名無しさん2014/09/30(火) 20:23:52.47ID:VWdpfwoz
ベタベタな手続き型プログラミングがいとも簡単にできるところじゃね?

25デフォルトの名無しさん2014/09/30(火) 20:30:05.69ID:lfWI1YhR
俺でも使えるコモンリスプってかあ

26デフォルトの名無しさん2014/09/30(火) 20:50:58.25ID:Q/T7bifx
偽と空リストが分かれてないとかnilのcar,cdrはnilとかそういうところは地味だけど
マクロ定義とかでリスト操作するときに便利

27デフォルトの名無しさん2014/09/30(火) 20:53:38.82ID:Q/T7bifx
あとバリバリに最適化してC並の性能に出来るところも気持ちいい

28デフォルトの名無しさん2014/10/01(水) 01:31:35.21ID:ewrKIyW0
なるほど
名前空間が分かれているところは利点?

29デフォルトの名無しさん2014/10/01(水) 14:35:45.12ID:aT3WVKIZ
Common LispがLisp-2であることは、俺にとっては実用上便利だが、
そうは思わない人たちもたくさんいるだろう。

30デフォルトの名無しさん2014/10/01(水) 14:38:33.54ID:pim40rLx
let over lambdaではちょくちょくageてた

31デフォルトの名無しさん2014/10/02(木) 19:33:45.19ID:Qypu3DYD
common lispって柔軟だけどかゆい所に手が届かない所が多いね
大抵はalexandriaとかkmrclとかcl-ppcreとかsplit-sequenceとか使えばなんとかなるけど
ライブラリが散らばるのが気になる
alexandriaとかkmrclをベースに自分だけが使う一つの巨大なライブラリを作って足りない部分を追加していく方がいいのかな

32デフォルトの名無しさん2014/10/06(月) 01:52:15.38ID:6XAAReg7
名前空間みたいに、分けられる概念は分けるのが正義。Scheme はたぶん間違っている。
その意味では CL も副作用を分けなかったのは失敗だった。

33デフォルトの名無しさん2014/10/06(月) 02:40:17.27ID:wbFS47kT
目が腐った

34デフォルトの名無しさん2014/10/07(火) 00:42:24.02ID:1sqcCb/K
プログラム書いるとオレオレマクロとかオレオレ関数ができてくると思うんだけど、みんなこれどこに置いてるの

35デフォルトの名無しさん2014/10/07(火) 00:45:00.37ID:nz5dcB15
sbclでコンパイルに数秒かかってて
(incf v)
(incf v)
...
をn回繰り返す式を
を(incf v n)にしたらコンパイルが一瞬で終わるようになった
最適化すごい

36デフォルトの名無しさん2014/10/07(火) 00:46:27.10ID:nz5dcB15
最初は今書いてるプログラムソースと同じディレクトリに置いて間を見計らって
~/.sbcl/の中に置いて起動時にloadするようにしてる

37デフォルトの名無しさん2014/10/07(火) 02:44:00.62ID:OarL+A4W
>>34
1. オレオレだと思っていてもalexandriaの中を探すと大抵のものはある.それを使う.
2. なければ,オレオレライブラリでもasdfで読めるようにしておく.quickproject使えば手間もかからん.
初期化ファイルで読み込ませるのはbad practice.

38デフォルトの名無しさん2014/10/07(火) 15:39:11.06ID:QLizEra8
ローカルプロジェクトはasdの設定とか面倒そうでやってなかったけど
quickproject使えば自動で生成されるんだな
前より楽になったしもっと早めに調べておけばよかった

39デフォルトの名無しさん2014/10/07(火) 19:50:29.81ID:1sqcCb/K
>>37
やっぱそんな感じなんですかね
一つのore-xandriaにいろいろ詰め込んでquicklispのlocal-projectに置いてるだけだったので、整理しようかなと思ってたんですが
参考になりました

40デフォルトの名無しさん2014/10/07(火) 20:34:41.77ID:/bWACu+C
(defun fn1 (str)
(print str))

どなたか教えて下さい。
上の様な関数fn1を最適化、型宣言をして下の様な、

(defun fn2 (str)
(declare (optimize (speed 3)(debug 0)(safety 0)))
(declare (string str))
(the string (print str)))

関数fn2になりました。
マクロを使って下のfn3の様にしたいのですが
可能でしょうか。教えて下さい。

(defun fn3 (str)
(high-speed)
(var-string str)
(the-print str))

41デフォルトの名無しさん2014/10/07(火) 21:26:20.95ID:WZBCV0KR
declareをhigh-speedやvar-stringマクロで表すのは無理
コードウォークするか別のアプローチを取るしかない

42デフォルトの名無しさん2014/10/07(火) 21:27:43.76ID:WZBCV0KR
書き込んだ後で思い出したけどリードマクロならdeclareに展開しても大丈夫だった

43デフォルトの名無しさん2014/10/07(火) 23:54:28.45ID:1sqcCb/K
(defmacro defun-opt (name args &body body)
(let ((vars (mapcar #'cadr args)))
`(defun ,name ,vars
(declare (optimize (speed 3) (debug 0) (safety 0)))
(declare ,@args)
,@body)))

(defun-opt fn ((string str))
(the string (print str)))

こんなんじゃだめなの?かなりてきとーに書いたけど

44デフォルトの名無しさん2014/10/08(水) 03:05:44.37ID:TuLw9ECs
>>40
CommonLispだから最適化しなくちゃならないとかマクロ使わなくちゃならないというのはむしろ間違い。
書く手間を減らしたいということなら、変数に最適化設定を入れて#.するってことが多いかな。
quicklispで公開されてるライブラリ入手してdeclareでgrepして読んでみると良いよ。

(defvar *normal-optimize* (optimize (speed 1) (debug 3) (safety 3)))
(defvar *full-optimize* (optimize (speed 3) (debug 0) (safety 0)))

(defun fn2 (str)
(declare #.*full-optimize*)
(declare (string str))
(print str)
str)

45デフォルトの名無しさん2014/10/08(水) 16:33:49.70ID:sWEVGgQw
型宣言とか最適化宣言って最初からつけといた方がいい?
後からつけるのは面倒そうだけど最初からつけるのも面倒だし

46デフォルトの名無しさん2014/10/08(水) 17:24:24.76ID:fEubzyH3
>>45
コンパイラにチューニングの肝を教える為のシステムだろう?
とりあえず動くコード書いてって言うREPL大好きな人なら後からだし、設計から最適化を含む人なら最初から入れるだけじゃないの?
あんまり難しく考えるとはげちゃうぞ

47デフォルトの名無しさん2014/10/08(水) 17:37:35.42ID:WnZHVY78
最初から入れる方向で設計する方が
あとあと抜本的大改造しなくてすみそうな

48デフォルトの名無しさん2014/10/08(水) 17:43:22.35ID:sWEVGgQw
> あとあと抜本的大改造しなくてすみそうな
やっぱり最初から宣言書いといた方が楽かな
はげるのは困るし

49デフォルトの名無しさん2014/10/08(水) 17:52:50.07ID:WnZHVY78
っていうか
人に聞いて決めるようじゃだめじゃないか?
自分で判断、どう判断しようか、その方針で作っていくうちにその良し悪しを知るのも勉強

50デフォルトの名無しさん2014/10/08(水) 17:53:20.23ID:WnZHVY78
×どう判断しようか
○どう判断しようが

5140です。2014/10/08(水) 21:03:00.62ID:kqWBLcYL
40です。
みなさま、ありがとうございます。
特に41さま、42さま、43さま、44さま、
具体例を示していただいて、大変勉強になりました。
また45からの「最初か後か」の議論。
参考にいたします。
ちなみに私は、正解を探る技量が自身に無いと考えていて
ひと通り書いて速度が気になれば「後から」改変する
方法でやっています。
これだと、とりあえず必要な目先の事だけに集中できて
コードのスッキリ感が保てると思うので。

52デフォルトの名無しさん2014/10/13(月) 19:13:35.11ID:iLY7u2fN
cl-ppcreってparse-stringして正規表現をS式にしたあと
それを使って文字列比較のクロージャを作ってるように見えるんだけど
dfaのコードが見当たらない
文字列比較のクロージャを使うやり方では有限状態機械はいらないのかな

53デフォルトの名無しさん2014/11/08(土) 12:44:37.99ID:DaCYtKLp
clojureとcommon lispとschemeのどれを学んだら良いか悩んでいます。
common lispが気になっているのですが、
モダンLispといわれるclojureの方がJVM言語ということもあって現実的に利用が容易な気もしていますし、
schemeはシンプルということで学びやすいのかなとも思います。
主観でも良いのでおすすめや優位性を教えていただけないでしょうか。よろしくお願いします。

54デフォルトの名無しさん2014/11/08(土) 12:54:08.79ID:6u8ySBY5
>>53
ここはcommon lispのスレなのでおすすめは決まっているようなものですがclojureです。
ユーザーが親切。

55デフォルトの名無しさん2014/11/08(土) 13:24:51.50ID:vifAICnG
Schemeがシンプルっていうのは正しいけど誤解でもある。
コミュニティで合意できた部分だけが仕様としてまとまったので仕様だけを見るなら綺麗で単純だけど、
決着がついてない論争は膨大にあって、処理系ごとに方針の違いが大きかったりする。
きちんと理解しようとすると、思ったよりは容易でない。
でも、まあ、 Common Lisp よりは楽かな。

Clojure は JVM が先にあって Lisp 的な外観をくっつけたものなので、
言語としての構造は Lisp 的テイストよりも Java 的テイストに寄ってると思う。
いろいろと Lisp っぽくないので Lisp についての理解を深めたいなら
あまり向いてないかもしれない。
現実路線というのはその通りだと思う。

Common Lisp は良くも悪くも Lisp 代表って感じ。

56デフォルトの名無しさん2014/11/08(土) 13:41:44.59ID:SZeI55Wm
>>53
使って学ぶならClojureがおすすめ
入門書は孔雀が表紙の本がGaucheの人が訳してて読みやすいし分かりやすい

ここCLスレだけど

57デフォルトの名無しさん2014/11/08(土) 14:08:51.53ID:LD3zpp/h
>>53
お勧めは、common lisp
schemeはlisp矯正ギブスみたいなところがあって、他言語やってた人にはいい気がするけど、
何かアプリを作ろうとすると、ライブラリがなくて面倒だったり、処理系依存が増えたりする。

clojureはjavaのライブラリを呼び出せるので、手軽にアプリが作りやすい。まそのおかげで、GUIアプリを作るのがやり易い。
その一方で、JVMの縛りを受ける。
armのlinuxで使おうとしたら、armのJVMがあんまりよくないのか、やたらと重かった。

なんだかんだで、common lispはいいバランスだと思う。
あとlisp族初めてなら、emacsとか入力支援のある環境を使った方がいいよ。

58デフォルトの名無しさん2014/11/08(土) 14:39:56.17ID:1s+x8/Zl
>>53
お勧めはClojure、ちくせうCLスレなのに!!!!
Webアプリとかは特に

CommonLispでお気楽極楽する事もできるけど、準備が大変。(GUIやるにはFFIで根性入れるかお高い処理系買うとか)
Clojureはこの点をJVMに依存することで過去の資産を使えるのが利点。
Schemeは僕は好きじゃ無いので説明に困るからお勧めしない。

なお、WebアプリをCommonLispで作るとmade with alien technologyを実感できてコレがたまらん

59デフォルトの名無しさん2014/11/08(土) 14:53:14.38ID:bYONtWuG
abclとかいうjvm上で動くcommon lisp処理系もあるよ

60デフォルトの名無しさん2014/11/08(土) 15:36:43.34ID:ypSedYZ0
Clojure人気すぎワロタ

お前らが考えるCommon LISPの実用に足りないこと、
これさえあれば実用できるのになー(チラッチラッ
って思うことって何?

61デフォルトの名無しさん2014/11/08(土) 15:54:44.54ID:bYONtWuG
コルーチンを実現するためにcl-contでpythonのyieldと同じ機能付けたら
マクロ展開後の式が大きすぎるみたいなこと言われたとき

62デフォルトの名無しさん2014/11/08(土) 18:26:11.80ID:9GHPHPx+
>>53
大人気のclojureに水を指すようだが、あれは first-class continuationsをサポートしていない。初めてリスプ系の勉強するのにはやめておいたほうがいい。初めてのLisp系の勉強には俺はSchemeを勧める。
テキストはThe Little Schemerを勧める。理由は
1. collector( continuation )もやるし
2. Y-combinatorもつくるし
3. Scheme上でScheme Interpreterもつくるからだ。
ただ、あくまでS式(Symbolic expression)を扱うので、例えばリストが内部的にどういうデータ構造なのか?は別書でやることになる。
car-cdr部を持つ単位(cons Cell)を次のようにclosureとして表現して見せてるくらいだ。

(define cons
(lambda (u v)
(lambda (t)
(if t u v))))
(define car (lambda (cell) (cell #t)))
(define cdr (lambda (cell) (cell #f)))

;applications
(define a
(cons 1 2))

(car a) -〉 1
(cdr a ) -〉 2

実用アプリをは基礎を学んでからCLででもClojureででも書けばいいんでないかい。

63デフォルトの名無しさん2014/11/08(土) 18:37:47.02ID:Y28pqrHL
おれの個人的意見。

>>53
scheme は scheme を実装して勉強する言語、と言っていいと思う。実装に興味があるならお勧めできる。特に gauche あたりの実装は素晴らしく綺麗で、面白い。

Common Lisp は何かを作るためのパワフルな道具。使えるようになって損はない。力を付ければ、低レベル層から高レベル層まで扱えるのが強み。ただやや古臭いところも。

Clojure は Lisp の皮を被ったちょっと違う何か、かもしれない。モダーンですごく考えられているし、どんどん進歩していて楽しい。コミュニティも活発。

まあ一つをやったら他のことはできない、なんてことはない。どれも面白いから、どんどん手を出すといいと思う。

64デフォルトの名無しさん2014/11/08(土) 19:01:00.31ID:FSWBSvHq
>>53
>>62の補足
The Little Schemerでは徹底して再帰的定義でやる。なのでwhileとかでの非再帰的定期は出てこない。非再帰的的定義など(きっと)頭の良いチンパンジーでさえできるようなものはいちいち扱わない!
また、fibonacci数を求めるなどを再帰的に定義すると非再帰的定義に比べてとても処理速が遅くなることがあるが、末尾再帰の書き方も出てくるので
非再帰定義に同等の速度を再帰的定義では発揮するやり方も学べる。
具体的にはcollecterを使った再帰的定義で末尾再帰が実現される例が出てくる。
この辺りもこのテキストを勧める理由た。ただし!意外に難しいかもしれない。最近、書き込みがあったがこのテキストがわからん、あきらめたと。
どうにもチンプンカンプンなら関連しそうな概念や例についめネットなどで予備調査しながらやるといいと思う。教えてくれる人がいればそれが一番だけどね。
「何?、継続がわからん?
あのな、いいか、女とセックスしたい時にな、女を脱がしてからセックスするだろ?まず脱がしてからセックスすることを継続だ。
それにつきる。」

65 ◆QZaw55cn4c 2014/11/08(土) 20:58:26.72ID:3fSv7BFT
ごめん、セックスに興味ないから‥

66デフォルトの名無しさん2014/11/08(土) 21:45:01.32ID:pv+SsXYA
ファックよりハックがしたい

67デフォルトの名無しさん2014/11/08(土) 21:45:50.89ID:LHO3gvAT
>>53
Schemeはいい言語だけど、何かをやろうとするとちょっとめんどいことが多いかな
完全な主観で言えばCommon Lispが好きだけど、
何かやりたいことがあってそれを実現したいのならClojureが一番楽だとは思う

68デフォルトの名無しさん2014/11/08(土) 22:04:36.91ID:nB39qpJZ
Libraries,??not framework の哲学とか http://eed3si9n.com/node/141 とかが性に合うならClojureでもいいかも

あとは括弧が(Scheme/CLに比べると)少なかったり

69デフォルトの名無しさん2014/11/08(土) 22:16:41.69ID:pv+SsXYA
lisp方言としてはarcが好きだけど処理系がなあ

70デフォルトの名無しさん2014/11/09(日) 17:30:33.39ID:9cWBVjQF
アクセス禁止にされてしまいレスが遅くなって申し訳ありません。

実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。

71デフォルトの名無しさん2014/11/09(日) 21:16:34.40ID:LY/WWL8I
最近思うんだけど、Lispの利点で重要だけどあまり宣伝されてないのはrepl。
書いたコードを即時に動かして結果やデータを見つつ、徐々に大きくしていくスタイルは脳汁どばどば出る。
LispマシンやCLIM系のインスペクタやデバッガも、このスタイルのためにあるように思える。

72デフォルトの名無しさん2014/11/09(日) 21:40:49.56ID:OnT24YzJ
リスプの概念をスマートに認識できるのはスキームだけどな
ま、いいけど
バイバイ

73デフォルトの名無しさん2014/11/09(日) 21:41:43.14ID:OnT24YzJ
>>71
インタープリター共通の事じゃいのか

74デフォルトの名無しさん2014/11/09(日) 21:44:22.51ID:4nIud3Qa
>>71
REPL が重要なのは同意。でも、REPL はもっと進化していいと思う。SLIME でもまだ不満だ。
例えばだけど、プロファイリング結果をグラフでREPLとは別のウィンドウに表示し続けるとか。アレグロにはあったけどCLOSのクラス階層を表示してくれるとか。

75デフォルトの名無しさん2014/11/09(日) 22:24:39.17ID:WJCAde3H
>>74
LightTableってエディタでclojureいぢると少し近い感じになるかも
CLだとやっぱりFranzとか欲しくなる

小売りで買えないから学習用の奴しか触ったこと無いけどたしかに脳汁が出そう

76デフォルトの名無しさん2014/11/09(日) 22:46:55.86ID:HXAk+KxZ
slime使ってないの?

77デフォルトの名無しさん2014/11/09(日) 23:45:42.55ID:/Un9rwFK
昔の Lisp の開発環境って使ったことは無いんだけど、スクリーンショットだとか動画とか見ると、
今でいう JavaScript を Chrome の開発環境で使ってるみたいな感じで、かなりリッチなんだな。
slime なんてめじゃないぞ。 どうして退化してしまったのか…。

78デフォルトの名無しさん2014/11/10(月) 11:24:29.22ID:7fhrA1DH
>>74
現状ライブラリとして広く共有されてるかは別としてそれなら簡単に作れると思うけどね
クラスブラウザなら素朴なのがslimeにもあるよ(require 'slime-xref-browser) M-x slime-browse-classes これもCLOS入門で試しに作ることが多い

replが重要なんじゃなくて対話性が重要ってことなんじゃないのかな
そして他の言語にかなりキャッチアップされてるから,いまとなっては大した特長でもない

79デフォルトの名無しさん2014/11/10(月) 12:13:10.95ID:1g8XtIDd
柔軟性や透明性など、自由度が段違いでは

80デフォルトの名無しさん2014/11/10(月) 13:13:00.20ID:ELyMc5jq
slime-browse-classes初めて知った
クラスの継承関係を表示するだけでも便利だけどスロットとか出ないの?

81デフォルトの名無しさん2014/11/10(月) 13:30:21.54ID:7fhrA1DH
>>80
シンボルの上でC-c C-d dすれば良いんじゃねw
いずれにせよ柔軟性や透明性など、自由度が段違いですのでカスタマイズするのも自作するのも簡単だろう

82デフォルトの名無しさん2014/11/10(月) 13:34:45.80ID:1g8XtIDd
M-x Slime-Inspect

83デフォルトの名無しさん2014/11/10(月) 14:24:04.72ID:ELyMc5jq
>>81
その方法なんで気付かなかったんだろ
ありがとう

84デフォルトの名無しさん2014/11/10(月) 15:06:49.35ID:ELyMc5jq
slimeでさえ使い込なせてないのにそれより多機能な>>71があっても豚に真珠だな
早く豚から海豚くらいになりたい

85デフォルトの名無しさん2014/11/10(月) 21:56:18.97ID:9fx5sy2R
うぉー、LightTable かっけー!サンクス!
いろいろいじってみる。

>>78
すまん、おれの説明が悪かった。
クラスブラウザは単なる例で、もっとLispの特徴を活かした開発支援のアイディアはあると思っているんだよ。
それがあることで生産性がぐっと上がるような。
具体例が出せないが、多分一つの方向は、コードから得られる統計的データを生かすものだと思う。

86デフォルトの名無しさん2014/11/10(月) 22:52:31.46ID:MlKubg7v
みんな そんなにreplとクラスブラウザが好きなら
Smalltalkにしちゃいなよ

87デフォルトの名無しさん2014/11/11(火) 12:06:59.77ID:VkGqc8ov
Smalltalkと同程度に、インタラクティブに、イテレーティブに、アジャイルに、GUIを含めて開発できるということだな

88デフォルトの名無しさん2014/11/11(火) 22:45:43.16ID:2Fik2SFv
Smalltalk はもう何年も前に死んでるじゃないか

89デフォルトの名無しさん2014/11/12(水) 00:49:21.53ID:6Jeysito
clojureから流れてきたものだけど、CLer的にはloopってどういうものだと認識されてる?

同じlispではあるけど、CommonLispは関数型であろうとしてるように感じないんだよね
効率のためなのかわかりやすさのためなのか、ローカルでさえあれば再代入まみれの副作用まみれっていうように感じる

loopも結局使い方によっては関数型の繰り返しっぽいっちゃぽいんだけど、どう使うにしろlispっぽくはないよね?
そのへんどう思われてるのか気になる。気軽に使っていいものなの?

90デフォルトの名無しさん2014/11/12(水) 00:52:40.52ID:fuf0dhj5
CLはマルチパラダイム言語。 そう書いてある。

91デフォルトの名無しさん2014/11/12(水) 00:58:18.03ID:bYyH4m5K
CommonLispはマルチパラダイム言語であって、別に関数型であろうとしているわけではない
Lispは歴史的な理由で関数型と勘違いされているが、手続的にもかけるし関数的にも書けるしOO的にも書ける
状態が増えると保守性もろもろが落ちるのは真なので、そこらへん意識しつつ、適材適所で書けばいい

92デフォルトの名無しさん2014/11/12(水) 01:25:54.24ID:6Jeysito
>>90>>91
マルチパラダイムってのは確かに書いてあったけど、利用者側はなるべく関数型っぽく書こうとするべきなのかなと思っていた
Scalaとかだとマルチパラダイムだけどなるべく関数型でかくことが推奨されてるイメージがある
なんでも関数型っぽく書くのではなく、わかりやすく書きやすく目的にあったように書きましょうというのがCLの正しいスタイルなのかな?

つまり状況に適していると判断できればloopをつかうことをためらう正当な理由はないってことか。
性能もdo系統や末尾再帰と比べて申し分ないようだし

93デフォルトの名無しさん2014/11/12(水) 01:37:55.86ID:/4vNcbkH
出来るだけ関数型で書くかはコーディングスタイルの話じゃないの

94デフォルトの名無しさん2014/11/12(水) 01:42:46.23ID:bYyH4m5K
概ねそんな感じでいいと思うけど、結局はどんな書き方も許されているので利用者が適宜判断する以外ないってだけかなあ
CommonLispとしての正しいスタイルというものはたぶんない

95デフォルトの名無しさん2014/11/12(水) 03:37:37.47ID:lROmcFul
Lisp族は利用者が対象に最適と考える記述を書きやすくしている
他の言語は言語作成者が最適と考える記述を書きやすくしている

96デフォルトの名無しさん2014/11/12(水) 07:03:56.02ID:1phNlnMj
mapcarは知ってるけど他のmap系は知らないので
hyperspecを眺めていたら疑問に思ったので質問します。

結果を返さないし反映もされないmapcは
どんな有用性があるのでしょうか。
おそらく私の無知なのでしょうが
mapcの存在する意味、使いどころが解りません。
どなたか説明出来ませんか。

97デフォルトの名無しさん2014/11/12(水) 12:30:36.42ID:imZE8AUt
副作用

98デフォルトの名無しさん2014/11/12(水) 16:34:38.00ID:l7WlF7lN
>>96
97のとおり副作用目的で使う
用途としてはdolistと同じだがmapcはそれより昔からある
他の言語でいうとRubyのmapとeach、Schemeのmapとfor-eachのような関係
dolistがあるので存在意義が薄れた

99デフォルトの名無しさん2014/11/12(水) 17:21:10.90ID:PsXMXR/P
(dolist (obj lst) (f obj))
の場合は
(mapc #'f lst)
に出来て簡潔

100デフォルトの名無しさん2014/11/12(水) 22:04:39.40ID:6H3fSFab
CL はマルチパラダイムなのは認めるけど、最近のパラダイムを取り込めてなくないか?
誰か haskell の型システムを完璧にCLに取り込むべきだ。(liskell は死んだっぽいし)

101デフォルトの名無しさん2014/11/12(水) 22:24:25.19ID:HM1OSRRp
S式で書かれたMLコードを、静的な型チェックかけたあとでLISPに変換する
ML2CLとか誰か作ってくれ

102デフォルトの名無しさん2014/11/12(水) 23:39:16.85ID:6Jeysito
静的型付けをもってこいということ?

103デフォルトの名無しさん2014/11/13(木) 02:37:58.35ID:vuqKX1tf
>>100-101
http://github.com/rvirding/lfe
erlangをlispとして使う奴ならあるよ、型チェックの為にMLだったらerlangでもよくね?

104デフォルトの名無しさん2014/11/14(金) 14:37:50.24ID:9VbJfwoj
cons cellのアドレスとそのconscellのcarのアドレスは別物ですよね?

105デフォルトの名無しさん2014/11/14(金) 15:39:00.51ID:1eTt6dGM
>>104
基本的には別物だけど immidiate value の場合はそうでもないというか、
ちょっと説明しづらいけど変則的なことが起こりうるよ。

106デフォルトの名無しさん2014/11/15(土) 01:18:12.55ID:RRwmbFh6
整数がいくつか入ったリストがあってそれで
リストが(1 2 3)なら"1-2-3"という文字列を作りたい
(format nil "~{~A-~}" '(1 2 3))なら"1-2-3-"になってしまう
なんか良い方法無いかな

107デフォルトの名無しさん2014/11/15(土) 01:31:48.99ID:NffmTIGL
(format nil "~{~a~^-~}" '(1 2 3))でどうでしょう?

108デフォルトの名無しさん2014/11/15(土) 01:37:00.40ID:6gSgpWRh
formatは変態すぎてついていけないわw

109デフォルトの名無しさん2014/11/15(土) 01:38:11.38ID:RRwmbFh6
ありがとう
最後だけ除く指定方法があったのか

110デフォルトの名無しさん2014/11/15(土) 05:48:51.06ID:DUX/03NY
>>105
immediate valueって何が言いたいの?
* (let ((cons '#0=(#0# . nil)))
(eq cons (car cons)))
T
これのこと?
これはimmediate value って言わなくね?

111デフォルトの名無しさん2014/11/15(土) 08:18:21.88ID:s7ITBfO0
>>110
105が言いたいのは tagged pointer のことじゃないの?

112デフォルトの名無しさん2014/11/16(日) 14:40:52.03ID:HhopYCdj
質問です
(defun hoge ()
(fuga (loop for x to 100 collect x)))
みたいな関数があるとして、この関数を呼び出すたびに
(loop for x to 100 collect x)
が評価されますよね
もしそれが重い処理で、実行時に定数として扱いたい場合はどうすべきでしょうか

自分の思いつく最良の解決方法は次のようなマクロを使う方法です
(defmacro pre-eval (body)
`',(eval body))
(defun hoge ()
(fuga (pre-eval (loop for x to 100 collect x))))
もっと良い方法があるような気がするんですが、ご指南お願いします

113デフォルトの名無しさん2014/11/16(日) 14:53:53.90ID:ZU8aQvb1
リードマクロ#.を使うか定数として定義しておく

114デフォルトの名無しさん2014/11/16(日) 14:59:40.61ID:HhopYCdj
>>113
ありがとうございます
リードマクロは盲点でした

115デフォルトの名無しさん2014/11/16(日) 20:30:55.78ID:clJNFDl+
内包表記をS式で表そうとしたら
結局、loopみたいな文法になるような気がして
loopは他の言語の内包表記のような感覚で使ってるよ

116デフォルトの名無しさん2014/11/18(火) 02:17:48.60ID:+qAFtLW3
sbcl 1.2.5ってスペシャル変数にバグある?
なんかどうにもおかしい部分があるんだけど

117デフォルトの名無しさん2014/11/18(火) 05:43:54.14ID:6/OvObTG
>>116
再現コードがないからどこがおかしいのかわからない明日も会社なのに眠れないし最低の気分だよ

118デフォルトの名無しさん2014/11/18(火) 13:54:56.29ID:TO5hAplY
今起きて確認したら
(let ((x y))
(declare (special x)))
とするところを
(declare (special x))
(let ((x y))
)
としてただけだった

安心して寝てくれ>>117

119デフォルトの名無しさん2014/11/18(火) 16:00:38.09ID:fmsMXjf6
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄

120デフォルトの名無しさん2014/11/19(水) 23:38:38.23ID:074lLX1H
マクロのマクロのデバッグ辛すぎ
なんで同じ式を生成してるのに片方だけエラー出るんだ

121デフォルトの名無しさん2014/11/20(木) 00:49:56.68ID:OJJlSD0q
順序

122デフォルトの名無しさん2014/11/20(木) 13:58:27.72ID:o6KEcfS7
マクロを生成するマクロのデバッグがむずいのはだいたい下のどれか
・展開で副作用がある糞マクロだから
・100行以上ある糞マクロだから
・分割できるのに1passでなんでもやろうとする糞マクロだから
・`(, ,@)式の扱い方を知らない糞野郎だから
・リスト操作のいろはを知らない糞野郎だから
・マクロのデバッグ方法を知らない糞野郎だから

123デフォルトの名無しさん2014/11/20(木) 14:32:28.25ID:BES29AhP
その一番下は展開されて122全文になるのか?

124デフォルトの名無しさん2014/11/20(木) 16:50:36.53ID:BES29AhP
>>120の原因は結局マクロを使ってる部分の式が間違ってただけだったんだけどね

125デフォルトの名無しさん2014/11/20(木) 17:57:21.80ID:OJJlSD0q
・使用箇所で意味が変わる不衛生な糞マクロだから ← New!

126デフォルトの名無しさん2014/11/20(木) 18:07:48.22ID:BES29AhP
もうこのネタつまらないからいいです

127デフォルトの名無しさん2014/11/20(木) 22:59:19.78ID:hiR3RK0/
eval-whenの使い方がいまいちわからない
てかマクロの展開とコンパイル・実行の関わりがいまいちわからない

128デフォルトの名無しさん2014/11/21(金) 00:18:26.19ID:cycGFVEO
Lispの闇の一端。

129デフォルトの名無しさん2014/11/21(金) 00:21:39.70ID:XZg95LLm
>>127
本よめば? 実践CommonLispにもかいてある
http://www.gigamonkeys.com/book/the-special-operators.html
随分とあかるい闇だな

130デフォルトの名無しさん2014/11/21(金) 00:29:52.03ID:RgbwwAKP
>>127
割と理詰めで、必要性を理解できるところだよ

131デフォルトの名無しさん2014/11/23(日) 15:41:55.61ID:QSlTVfZV
なんかC++の闇みたいだな
C言語をマルチパラダイムに使えるようにいろいろ突っ込んだのがC++で、
lisp族に同様に色々突っ込んだのがCommon Lispみたいな

132デフォルトの名無しさん2014/11/23(日) 15:53:17.70ID:meGdP6rU
そうだよ。

133デフォルトの名無しさん2014/11/23(日) 16:59:14.19ID:GIFgmbRX
じゃあそろそろ新しい規格が欲しいな

134デフォルトの名無しさん2014/11/23(日) 17:20:06.94ID:fhpYLSa9
そういう声はたまに聞くけどなんで誰も行動しないの?

135デフォルトの名無しさん2014/11/23(日) 17:39:25.60ID:P0o96etQ
スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。

136デフォルトの名無しさん2014/11/23(日) 17:47:32.22ID:fhpYLSa9
> スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ

137デフォルトの名無しさん2014/11/23(日) 23:17:38.64ID:c42CBMgb
>>136
おいらはformatだけで挫折する自信あるぜ

138デフォルトの名無しさん2014/11/23(日) 23:32:32.89ID:3bQdEAIa
formatはlispで書けるからいいとしてその下のwriteが大きすぎる

139デフォルトの名無しさん2014/11/24(月) 06:08:09.05ID:hJdg5lTu
3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。

140デフォルトの名無しさん2014/11/24(月) 06:09:29.38ID:hJdg5lTu
3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。

141デフォルトの名無しさん2014/11/24(月) 12:58:51.41ID:utSDrll/
On Lispを読んでいるのですが、関数型インターフェースのところで

各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる

という記述がああります

この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?

続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)

引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)

ということなのでしょうか?

142デフォルトの名無しさん2014/11/24(月) 23:22:30.44ID:n8voiuRi
静的に狭い場所で管理された副作用は速度の為に許容するって意味じゃね

ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう

143デフォルトの名無しさん2014/11/24(月) 23:34:37.59ID:Ig3vRg1v
ブートスクラップ…

144デフォルトの名無しさん2014/11/24(月) 23:38:40.09ID:n8voiuRi
横文字には弱いみたい
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです

145デフォルトの名無しさん2014/11/24(月) 23:56:03.83ID:sHaIAKeh
>>141
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト

なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる

146デフォルトの名無しさん2014/12/02(火) 00:48:14.88ID:oMH805i/
教えてくれ
Emacs23.3 (On windows) に slime 入れたんだ
.emacs にはこんな感じで書いた

(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path "~/.emacs.d/site-lisp/slime")
(require 'slime-autoloads)
(slime-setup)

で、まあ動くことには動く
でもなんでか以前clispで使ったときはあった起動時アニメーションがないんだ
なんで?

147デフォルトの名無しさん2014/12/02(火) 00:57:02.84ID:nnpj2kBC
slime-setupをhelpで見ればわかるよ

148デフォルトの名無しさん2014/12/03(水) 11:35:40.26ID:c/4+MUqf
This `cl-labels' requires `lexical-binding' to be non-nil
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?

149デフォルトの名無しさん2014/12/03(水) 14:14:49.31ID:ReckfAN/
146 = 148なのか?
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな

1501482014/12/03(水) 20:17:25.25ID:Wu/dN4SR
>146 = 148なのか?
ちがいますよ

>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます

>しかし質問のしかた最悪だな
ごめんなさい

151デフォルトの名無しさん2014/12/04(木) 17:51:59.64ID:mQjd1sH/
質問です
素人知識ながらコードの高速化を行っているのですが、例えば次のコードをdisassembleします(sbclを使ってます)
(defun my-eq (a b)
(declare (optimize (speed 3) (safety 0)))
(eq a b))

; disassembly for MY-EQ
; Size: 21 bytes
; 0CAE251A: 39FA CMP EDX, EDI ; no-arg-parsing entry point
; 1C: 740A JEQ L1
; 1E: BA0B001001 MOV EDX, 17825803
; 23: L0: 8BE5 MOV ESP, EBP
; 25: F8 CLC
; 26: 5D POP EBP
; 27: C3 RET
; 28: L1: BA27001001 MOV EDX, 17825831
; 2D: EBF4 JMP L0
すると高速化においてよろしくないとされる条件分岐命令(JEQ)が出力されます
このようなJEQは本当に高速化の脅威になりますか?
また、取り除くことはできますか?

152デフォルトの名無しさん2014/12/05(金) 02:59:30.47ID:EEY9XvTS
>>151
eq速くして全体が速くなったというのを寡聞にして聞かない
何作ってるの?

153デフォルトの名無しさん2014/12/05(金) 18:35:21.48ID:0LF1tZEz
>>152
将棋のAIを作ってます
インライン展開してない状態でプロファイルを取ったとき
eqを使う単純な関数で時間がかかっており、>>151のような状態に気づきました
単なる比較で分岐命令が生成されることに違和感があり質問しました

ちなみに今プロファイルを取りなおしたところそんなに時間もかかっておらず、なんだったのかって感じです

154SCHEME餃子 ◆8X2XSCHEME 2014/12/06(土) 01:41:19.85ID:17surw1A
インライン展開すると関数コールが省略できるってのもあるし、
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。

155デフォルトの名無しさん2014/12/06(土) 20:52:17.44ID:Nd/Kweiq

1561512014/12/06(土) 21:57:29.75ID:lLsVvdEd
>>154
もうちょっと苦しんでみます

157デフォルトの名無しさん2014/12/11(木) 20:00:12.67ID:URNWWvBk
gcl使ってたらhandler-case,ignore-errosが無いことに気付いた
やっぱりansi準拠じゃないとansin出来んな

158デフォルトの名無しさん2014/12/16(火) 16:07:51.10ID:/bfoimZs
define-hogeマクロを定義するマクロはどういう名前にすればいいんだろ
define-define-hogeとかしか思い付かないけど不恰好だし

159デフォルトの名無しさん2014/12/16(火) 16:11:37.96ID:CudKiy/r
defmacro-hoge でいいだろ

160デフォルトの名無しさん2014/12/16(火) 16:13:21.14ID:/bfoimZs
そういえばそうか

161デフォルトの名無しさん2014/12/22(月) 20:51:38.71ID:ghZKV2ZQ
allegro clの無償版って普段のlispプログラミングにどれくらい使えるかな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな

162デフォルトの名無しさん2014/12/22(月) 21:56:16.19ID:36o3vILg
>>161
正直、あまり常用したいとは思わない
何をするにも、試用版かなんかのダイアログが出てきたと思う

allegro購入予定でなければ、cclとかsbclとか使った方がいいと思う

163デフォルトの名無しさん2014/12/22(月) 22:35:05.70ID:18uotQck
やっぱりただで使わせる気は無いのか
気分転換に環境変えてみようと思ったけど残念

164デフォルトの名無しさん2014/12/26(金) 14:55:55.44ID:ivhZ4+Q3
loopマクロのトークンはキーワードにするのはどういう意味があるんだ

165デフォルトの名無しさん2014/12/27(土) 06:45:42.86ID:BPfLluBn
>>164
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。

166デフォルトの名無しさん2014/12/27(土) 07:44:44.77ID:PhaXTdWk
なにがインターンされるかなんて気にして書いてる人なんかいないよ、お兄ちゃん!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!

167デフォルトの名無しさん2014/12/27(土) 15:12:23.12ID:Z5TU2mXJ
ライブラリ書いてる人は気にしてるとおもうけど

168デフォルトの名無しさん2014/12/27(土) 15:12:55.73ID:8eya4d4I
補完のときにノイズになるかな

169デフォルトの名無しさん2014/12/28(日) 01:28:27.48ID:Sd6FVmJh
外部から参照されるシンボルでもない限りファイルをコンパイルしたファイルからはシンボルは勝手に消えるからライブラリ作るやつはそんな細かいこと気にしてないだろ…
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし

170デフォルトの名無しさん2014/12/30(火) 09:14:33.10ID:O6VRzwmF
loopマクロのuptoとかがキーワードでも動く、ってのは
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。

171デフォルトの名無しさん2014/12/30(火) 14:08:08.62ID:27cBYY6U
仕様で規定されてるかどうかはloopの項目に記載があるから違法か合法かは読めばわかるな。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。

172デフォルトの名無しさん2014/12/30(火) 14:27:00.81ID:vs+COFUK
CLHSより引用。
loop keyword n. Trad. a symbol that is a specially recognized part of the syntax of an extended loop form.
Such symbols are recognized by their name (using string=), not by their identity;
as such, they may be in any package. A loop keyword is not a keyword.

173デフォルトの名無しさん2014/12/30(火) 19:08:08.10ID:vs+COFUK
>>171
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。

174デフォルトの名無しさん2015/01/13(火) 17:41:40.78ID:n8FCO54L
構造体やクラスの名前からスロットを取得する方法ってある?

175デフォルトの名無しさん2015/01/14(水) 20:45:49.59ID:Wha2sJr8
class-slots てメソッドがあるよ。構造体に使えたかは忘れた

176デフォルトの名無しさん2015/01/14(水) 21:08:24.00ID:1rDSBA79
>>175
ありがとう
検索して見つけたこれが参考になった
http://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp

177デフォルトの名無しさん2015/01/15(木) 02:26:41.38ID:3CJhIHgr
guiとかweb系のライブラリないの

178デフォルトの名無しさん2015/01/16(金) 01:42:21.96ID:dM6MW5TX
あるよ

179デフォルトの名無しさん2015/01/17(土) 18:34:52.38ID:CWvWtJ6X
evalとapplyの違いは何ですか?

180デフォルトの名無しさん2015/01/17(土) 19:00:09.58ID:P4fG3Fn9
carとfuncallの違いはなんですか?
と聞いてるようなものなんだが

181デフォルトの名無しさん2015/01/17(土) 19:12:25.44ID:73qLESVw
>>179
ええとね
単語のスペルと長さがちがうかなぁ
それとevalはevaluateの省略だね
eval is short for evaluate

182デフォルトの名無しさん2015/01/17(土) 19:40:12.57ID:CWvWtJ6X
http://qiita.com/mandel59/items/8f9111143aea94e7b363
ここで同じだと言っている人がいて気になったので

183デフォルトの名無しさん2015/01/17(土) 19:49:45.85ID:P4fG3Fn9
この板のいくつかの場所で言われてるけど
その人ちょっとおかしいんだよ
真に受けない方がいい

184デフォルトの名無しさん2015/01/17(土) 20:03:49.61ID:CWvWtJ6X
いえこの人がおかしいのは知ってますし真に受けるつもりもありません
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので

185デフォルトの名無しさん2015/01/17(土) 20:30:19.29ID:P4fG3Fn9

186デフォルトの名無しさん2015/01/17(土) 21:08:56.14ID:CWvWtJ6X
適用は評価の前段階みたいな感じでいいんでしょうか

187デフォルトの名無しさん2015/01/17(土) 21:14:39.87ID:X3AOWrxV
あのう、きちっとしたテキストを一冊読んだほうがいいよ

188デフォルトの名無しさん2015/01/18(日) 02:14:00.68ID:m7MxJZlS
(eval `(funcall ,f ,@args))と(apply f args)が同じっていいたいのかね?
ようわからんけど…

189デフォルトの名無しさん2015/01/18(日) 07:43:52.27ID:FaVyQjad
evalはシンボルのリストを読み込んでその内容を実行する。
applyは既に評価されて定義された関数を適用すること。

190デフォルトの名無しさん2015/01/18(日) 07:49:09.26ID:oexYoD6M
eval だけでいいのに何でapplyが重視されてるんだ?、と思ったら、SICPを読もう

191デフォルトの名無しさん2015/01/18(日) 09:28:02.82ID:8C45mKK2
>>179
commonLispの板でeval applyといえば特定の実装の話になるから
lisp scheme板に話をふった方が良いよ
そういう話好きなやついるから

192デフォルトの名無しさん2015/01/19(月) 01:45:04.66ID:wgUa3gjO
emacsのslimeについて質問です
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか

193デフォルトの名無しさん2015/01/23(金) 08:44:20.17ID:EcShhbHE
adw-chartingって(ql:quickload :adw-charting)しただけじゃ
使えないんでしょうか

194デフォルトの名無しさん2015/01/23(金) 12:42:39.31ID:iqBUzDAo
>>193
エスパーだけど、サブシステムに分かれてるから
(ql:quickload :adw-charting-vecto)
しないとサンプルが動かないという意味ではそうなのでは
試した手順とマニュアル読んで分からなかった箇所を具体的に書いたら?
(adw-charting:with-pie-chart (300 200)
(adw-charting:add-slice "A" 5.0d0)
(adw-charting:add-slice "B" 2.0d0)
(adw-charting:save-file "minimal-pie-chart.png"))
は配布状態で動いたよ

195デフォルトの名無しさん2015/01/23(金) 13:23:05.37ID:EcShhbHE
>>194
動きましたありがとうございます
quicklispの使い方をわかってなかったので
exampleをコピペしただけでadw-charting:をつけてませんでした

196デフォルトの名無しさん2015/01/23(金) 21:36:01.97ID:F+B+etzd
嬉しいのでチラシの裏書きます
The Little Schemer二回読了!!
勉強になった

次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます

197デフォルトの名無しさん2015/01/23(金) 22:50:04.93ID:NpwsZqSV
再帰で考えてしまって動的計画法が使いこなせない!
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…

198デフォルトの名無しさん2015/02/07(土) 08:01:14.41ID:tz9pe5xW
【入門】Common Lisp その11【質問よろず】YouTube動画>1本 ->画像>3枚

Serial Experiments LainではLispのコードのシーンがあるらしい

199デフォルトの名無しさん2015/02/07(土) 08:39:22.93ID:R2/oFkGJ
Lain か…懐かしいなぁ

200デフォルトの名無しさん2015/02/07(土) 09:32:47.61ID:FOHLYtkF
Life Gameのソースっぽい

201デフォルトの名無しさん2015/02/07(土) 09:52:15.98ID:OMRZtff8
D-WaveのOSがCommonLispってマジ?

202デフォルトの名無しさん2015/02/07(土) 10:43:02.43ID:Ei/z8not
>>198
>>201
知らないけど有り得そう

203デフォルトの名無しさん2015/02/07(土) 10:51:45.09ID:FOHLYtkF
>>198
wikiペディアでソースみつけた
http://en.wikipedia.org/wiki/Serial_Experiments_Lain

>>201
マジみたい、APIのみ公開だって。
アプリ開発はPython推しだね。

204デフォルトの名無しさん2015/02/07(土) 12:02:20.85ID:saCOOwny
>>198
このソースを書き写した覚えがあるなと思って、
ハードディスクを漁ったら見つかった。

この部分の前後のソースも写してあったけど、
前の部分のソースが明らかにライフゲームの生死判定だった。

205デフォルトの名無しさん2015/02/07(土) 13:26:07.79ID:yKpU9aut
その書き写したソース見たい

206デフォルトの名無しさん2015/02/07(土) 13:32:26.38ID:FOHLYtkF
>>205
>>203のリンクから元本のソース見れるよ。

207デフォルトの名無しさん2015/02/07(土) 15:06:09.69ID:yKpU9aut
見れた
配列をbit単位で操作するのは効果あるのかな

208デフォルトの名無しさん2015/02/07(土) 15:20:36.83ID:9qdU9S5T
>>207
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?

209デフォルトの名無しさん2015/02/07(土) 15:36:59.11ID:6rQaurxf
一バイトは金のひとすくい
しません、させません、ビットの無駄使い

おかげでビルも立ちました

210デフォルトの名無しさん2015/02/08(日) 23:41:38.36ID:C4tJwi8l

211デフォルトの名無しさん2015/02/09(月) 11:04:57.10ID:inFNj6Hs
>>210
stackoverflowに質問を書く前に問題を解決でき
オープンソースにせずとも問題を解決出来る高い生産性が
有るって事だなw
言語も人も。

212デフォルトの名無しさん2015/02/09(月) 11:50:04.98ID:wTON1hpK
設定ミスでそうなっただけってどっかで見た気がする

213デフォルトの名無しさん2015/02/09(月) 11:55:17.59ID:gnp8i06N
オープンソースにせずとも問題を解決出来る、って意味分らないね

214デフォルトの名無しさん2015/02/09(月) 18:29:24.33ID:Ysp4l3Zv

215デフォルトの名無しさん2015/02/09(月) 18:35:56.82ID:yftdnQui
うぉー!
FORTLANと同席かい!!

216デフォルトの名無しさん2015/02/09(月) 22:47:33.62ID:JzEtMJoP
FORTRANじゃあーい!!

217デフォルトの名無しさん2015/02/09(月) 22:57:24.39ID:HcxTGLiU
Ratforってあったよね

218デフォルトの名無しさん2015/02/09(月) 23:47:36.78ID:JzEtMJoP
Rational Fortran
初代プログラミング作法(programming tools)のやつね。

219デフォルトの名無しさん2015/02/09(月) 23:55:00.91ID:bwEZbR4B

220デフォルトの名無しさん2015/02/10(火) 17:05:14.42ID:Xy5S1/Fv

221デフォルトの名無しさん2015/03/07(土) 00:42:51.80ID:1AfT/MV4
LET OVER LAMBDAを読んでいるのですが
しょっぱなで出てくるマクロdefmacro/g!が動きません。

(defmacro defmacro/g! (name args &rest body)
(let ((syms (remove-duplicates
(remove-if-not #'g!-symbol-p
(flatten body)))))
`(defmacro ,name ,args
(let ,(mapcar
(lambda (s)
`(,s (gensym ,(subseq
(symbol-name s)
2))))
syms)
,@body))))

(macroexpand-1
'(defmacro/g! nif (expr pos zero neg)
`(let ((,g!result ,expr))
(cond ((plusp ,g!result) ,pos)
((zerop ,g!result) ,zero)
(t ,neg)))))

;=>(DEFMACRO NIF (EXPR POS ZERO NEG) (LET () `(LET ((,G!RESULT ..

(flatten '`(let ,g!result))が
(SB-INT:QUASIQUOTE LET ,G!RESULT)になるので
,g!resultがremove-if-notを通り抜けられないのが理由でしょうか。
sbcl1.2.7です。動かす方法はありますか?

222デフォルトの名無しさん2015/03/07(土) 00:48:06.97ID:1AfT/MV4
(defun g!-symbol-p (s)
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))

223デフォルトの名無しさん2015/03/07(土) 07:09:08.52ID:mW7RcyXy
コードコピペしたらちゃんと動いたけど
flattenが間違ってんじゃないかな

224デフォルトの名無しさん2015/03/07(土) 16:01:02.06ID:yXgYIHFE
試しにwindows版のsbcl1.2.7入れてやってみたが
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな

225デフォルトの名無しさん2015/03/07(土) 16:17:29.95ID:IuS2RJP4
clisp+alexandria:flattenでやってみたけど動くよ

226デフォルトの名無しさん2015/03/07(土) 16:50:40.73ID:yXgYIHFE
debianのsbcl1.0.57.0ではちゃんと動く
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん

227デフォルトの名無しさん2015/03/07(土) 19:54:37.09ID:sXXhs6bf
これが関係してる?

#:g1: SBCL 1.2.2でのbackquoteの変更
http://g000001.cddddr.org/3615721500

228デフォルトの名無しさん2015/03/08(日) 14:36:36.18ID:AqwQTNqO
Common Lisp 素人です.
SSL って cl+ssl が標準的なんですかね?
以下のコードが動かないんですが, これはうちの環境が悪いんでしょうか?

```
(ql:quickload :usocket)
(ql:quickload :cl+ssl)

(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock))))
(unwind-protect
(progn
(format sock-stream "? CAPABILITY"))
(usocket:socket-close sock)))
```

Debugger:

```
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-STRING (3)>
when called with arguments
(#<CL+SSL::SSL-STREAM
for #<FD-STREAM
for "socket 192.168.1.60:46384, peer: 64.233.187.109:993"
{1005B13083}>>
"? CAPABILITY" 0 NIL).
[Condition of type SIMPLE-ERROR]
```

cl+ssl の streams.lisp では stream-write-byte についてしか defmethod してないけど,
普通はこれで動くもんなんです?

229デフォルトの名無しさん2015/03/08(日) 14:39:57.84ID:4UYhxwse
SBCLのバッククォートは構造体に変換されるようになったから
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?

2302282015/03/08(日) 19:54:56.42ID:AqwQTNqO
解決したので報告です. :external-format を指定して flexi-streams を使えば良いようです.

```
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock) :external-format '(:latin-1 :eol-style :crlf))))
(unwind-protect
(progn
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
(format sock-stream "? CAPABILITY~%")
(force-output sock-stream)
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
)
(usocket:socket-close sock)))
```

=>

```
* OK Gimap ready for requests from xxx.xxx.xxx.xxx hogehoge

* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
```

231デフォルトの名無しさん2015/03/17(火) 01:48:34.28ID:gpmCn1O6
(変数 値)のリストと式が与えられた状態で、変数を値に束縛した環境で式を評価したいのですが、良い方法がわかりません
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?

232デフォルトの名無しさん2015/03/17(火) 10:47:28.60ID:Zf13xXA9
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(eval form)))
とかかなあ

もしくはformを関数にしてしまうのがいいのかな
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(let ((thunk (coerce `(lambda () ,form) 'function)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(funcall thunk))))
bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)

インタプリタかなにか作ってるの? 👀

233デフォルトの名無しさん2015/03/17(火) 10:48:46.17ID:Zf13xXA9
なぜか変な絵文字が入った…

234デフォルトの名無しさん2015/03/17(火) 13:59:09.21ID:gpmCn1O6
>>232
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます

ある言語のサブセットを作ってます

235デフォルトの名無しさん2015/03/26(木) 19:32:41.80ID:atSKhz5s
質問です。以下の、
私家版、Common Lisp プログラマのレベル10
http://www.reddit.com/r/lisp_ja/comments/30cfn0/%E7%A7%81%E5%AE%B6%E7%89%88common_lisp_%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB10/
の中のレベル3に、
「fletやlabelsによるローカル関数定義を多用」が、
「Common Lispでは名前空間の汚染はあまり気にしなくて良いので多用する必要はない」とレスされ、
るそうですが、
なぜ気にしなくて良いのですか?

236デフォルトの名無しさん2015/03/26(木) 20:09:27.36ID:7QpaiPyE
>>235
comon lisp よりも scheme の方がよさそーだ‥

237デフォルトの名無しさん2015/03/26(木) 21:35:12.89ID:RYFxX3Lv
>>235
なんかコイツ自身レベルが低そうだ

238デフォルトの名無しさん2015/03/31(火) 15:33:38.54ID:Wn1BJkY4
235です。
>>235
それはなぜですか。
もしよければ、意見を聞きたいです。

>>237
え、わたし(235)のこと。それともリンク先を書いた人のこと。

私自身は
ローカルなら他から呼べなくて安全といえるけど、
1つの定義が大きくなってあまり好きじゃないんです。

極端に言えば、
(1つ目の処理 ...)
(2つ目の処理 ...)
(3つ目の処理 ...)
と、書いていって最終的に
(3つ目の〜 (2つ目の〜 (1つ目の〜 ...)))
と、するのが好きなのですが
好き嫌いを超えた優劣や善悪があるのでしょうか。

239デフォルトの名無しさん2015/04/03(金) 04:59:16.54ID:OpTcNNTw
元スレで作った人に聞けばいいのでは…
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど

240デフォルトの名無しさん2015/04/04(土) 21:18:43.12ID:+yfNqqsV
初歩的な質問ですいません。
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?

241デフォルトの名無しさん2015/04/04(土) 21:30:16.17ID:zaPqarn1
sudo yum install sbcl.x86_64
じゃだめなん?

242デフォルトの名無しさん2015/04/08(水) 14:04:17.18ID:0NyqAI50
Eclipse Common Lisp がオープンソース化された話があるみたいだけど、
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。

243ドリル優子2015/04/20(月) 17:48:30.95ID:pJtoLIOS
これはさすがにヤバイだろww

【神回】美人ニコ生主mAriAがFME切り忘れで公開オナニー!?【電マ】



244デフォルトの名無しさん2015/04/20(月) 17:51:10.30ID:6c0j1ZNC
>>243
しねかす

245デフォルトの名無しさん2015/04/20(月) 18:27:45.45ID:BMKjvfkW
こんにちわ、これってどういう場面で使うんでしょうか??
関わりがないってことは特に知る必要ないんでしょうか?

246デフォルトの名無しさん2015/05/04(月) 09:54:28.68ID:1poVLIgC
>>244
だまされるお前が悪い。
クソ動画見てオナニーしてろ

247デフォルトの名無しさん2015/05/04(月) 14:43:15.18ID:wppJPNh0
>>246
うわ!もろに犯罪者の発想だな
「騙される方が悪い」
おまえの人生を彷彿とさせるな
犯罪人生上等君

248デフォルトの名無しさん2015/06/05(金) 01:19:51.77ID:06+5DuOz
http://www.infoq.com/jp/news/2015/06/lispworks-mobile-runtime
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい

249デフォルトの名無しさん2015/06/14(日) 21:41:14.46ID:DbwnGjGJ
clispって5年もバージョンアップないんだね
もう終わりか

250デフォルトの名無しさん2015/06/18(木) 21:22:38.22ID:WKPwU09x
つい最近、lisp始めたんですけど、
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?

251デフォルトの名無しさん2015/06/19(金) 02:49:41.26ID:xcKv4OTq
>>250
処理系によって違ってくるから何を使ってるか教えて

252デフォルトの名無しさん2015/06/19(金) 12:32:36.15ID:sjap9hEB
>>251
詳しくは知らないんだけど、
common lispで
format関数使って日本語と文字列を結合しようとするとそのエラーが出ます。

253デフォルトの名無しさん2015/06/20(土) 12:18:47.33ID:hw0FsWHq
windowsのclispでcl-opencvって使えますか?

254デフォルトの名無しさん2015/07/06(月) 23:11:46.67ID:gzHSRIru
今日からLisp始めた阿呆です。本当に初歩的な質問をしたいのですが、よろしいでしょうか。

わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。

というファイルを

(((#\わ #\た #\し #\は) (#\太 #\郎) (#\で #\す #\。)) ((#\趣 #\味 #\は) (#\2 #\ち #\ゃ #\ん #\ね #\る) (#\で #\す #\。))
((#\L #\i #\s #\p #\初 #\心 #\者) (#\で #\す #\。)))

このようなリストを吐き出す関数を書きたいのですが、本当に知ろうとゆえ、困ってます。
一応書いてみたのが以下のものです。

(defun test-parse (fname)
(with-open-file (in fname :direction :input)
(let (tmp (w ()) (l ()) (s ()))
(loop for tmp = (read-char in nil)
while tmp
do (cond ((eql tmp #\Space) (push (reverse w) l) (setf w nil))
((eql tmp #\Newline) (push (reverse w) l) (setf w nil) (push (reverse l) s) (setf l nil))
(t (push tmp w))
))
(push (reverse w) l)
(push (reverse l) s)
(reverse s))))

どうすれば、かっこいいLisperになれますか。
説教してください。頓首。

255デフォルトの名無しさん2015/07/06(月) 23:30:52.25ID:DLd6IvQj
かっこいいかは知らんけど、split-sequenceを使うと、

(defun omanko (src)
(mapcar (lambda (s)
(mapcar (lambda (x) (coerce x 'list))
(split-sequence #\Space s)))
(split-sequence #\Newline src)))

(omanko "わたしは 太郎 です。
趣味は 2ちゃんねる です。
Lisp初心者 です。")

↓CLISPでの結果

(((#\HIRAGANA_LETTER_WA #\HIRAGANA_LETTER_TA #\HIRAGANA_LETTER_SI #\HIRAGANA_LETTER_HA) (#\U592A #\U90CE)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\U8DA3 #\U5473 #\HIRAGANA_LETTER_HA)
(#\FULLWIDTH_DIGIT_TWO #\HIRAGANA_LETTER_TI #\HIRAGANA_LETTER_SMALL_YA #\HIRAGANA_LETTER_N #\HIRAGANA_LETTER_NE
#\HIRAGANA_LETTER_RU)
(#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP))
((#\L #\i #\s #\p #\U521D #\U5FC3 #\U8005) (#\HIRAGANA_LETTER_DE #\HIRAGANA_LETTER_SU #\IDEOGRAPHIC_FULL_STOP)))

2562542015/07/09(木) 18:43:04.87ID:dOwpf5X7
>>255
おおお。ありがとうございます。
split-sequenceなんてのがあるのですね。
勉強になりました。

2572542015/07/10(金) 07:34:53.35ID:f1nU5bVE
いろいろ参考書を買ったけど、
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。

258デフォルトの名無しさん2015/07/13(月) 12:29:38.83ID:mO7PTTVX
あるサイトに
(reduce #'+ '(1 2 3))
;=> 7
 6じゃないのですか?

259デフォルトの名無しさん2015/07/13(月) 23:25:59.50ID:RdQReua/
>>258
そのサイトの管理者なりに教えてあげればいいじゃない

260デフォルトの名無しさん2015/07/15(水) 02:32:01.68ID:UqDQ6ToJ
>>258
6だよ‥アスペかよw

261デフォルトの名無しさん2015/07/19(日) 21:44:01.49ID:iFwTTRmf
最近はcl freaks に出ている人達を中心にcommon lispが元気ある感じするよね

262名無しのプログラマ2015/08/09(日) 17:59:36.15ID:Icb40LOY
再帰の魅力

263デフォルトの名無しさん2015/09/15(火) 00:43:38.55ID:1sxk5v5N
lispworks proかったった。
買ったからには勉強せねば。
実はまだlispなんにも知らん。

264はちみつ餃子 ◆8X2XSCHEME 2015/09/15(火) 05:52:09.24ID:e2MtLkqs
知らんのにいきなり買うとか豪儀やな

265デフォルトの名無しさん2015/09/15(火) 10:02:52.02ID:qUwxVhtE
ならリスプの統合環境と言っていいか、そこは怪しいが
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな

266デフォルトの名無しさん2015/09/22(火) 22:58:08.35ID:zMYL44aC
(defun fact (n)
(cond ((=n 0) 1)
(t (* (fact (1 - n))
n ))))


*** - SYSTEM::%EXPAND-FORM: invalid form (1 - N)
The following restarts are available:
ABORT :R1 Abort debug loop
ABORT :R2 Abort debug loop
ABORT :R3 Abort debug loop
ABORT :R4 Abort debug loop
ABORT :R5 Abort debug loop
ABORT :R6 Abort debug loop
ABORT :R7 Abort debug loop
ABORT :R8 Abort debug loop
ABORT :R9 Abort main loop
とエラーがでます。どうしてなのでしょう?教えてください。
お願いします。

267デフォルトの名無しさん2015/09/22(火) 23:17:05.48ID:52HAR6EJ
スペースが入ってなかったり入っていたり

(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))

268デフォルトの名無しさん2015/09/22(火) 23:27:01.08ID:zMYL44aC
>>267
ありがとうございます。ずいぶん難しいなあと思いました。
コードを整えるためにスペース入れたらエラーなので。
規則はあるのでしょうか?

269はちみつ餃子 ◆8X2XSCHEME 2015/09/23(水) 01:17:09.38ID:Z8UtHxkJ
>>268
- や * や = も英数字と同じ扱い。 分けるものがなければつながるというだけ。
=n とあればそれは =n という名前と認識されるし、 1- は 1- という名前。

270デフォルトの名無しさん2015/09/23(水) 02:22:31.73ID:2zCL7K2h
>>269さん
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では

271デフォルトの名無しさん2015/09/23(水) 02:25:45.54ID:2zCL7K2h
>>263
30万円くらいですか。すごいですね

272はちみつ餃子 ◆8X2XSCHEME 2015/09/23(水) 03:31:44.34ID:Z8UtHxkJ
>>270
> 関数には引数に1-をいれるというオプションのようなものが付く

高階関数のことを言ってるのかな。
そのあたりはどうせ避けて通れないので、
学んでいるうちにわかってくるよ。

273デフォルトの名無しさん2015/09/23(水) 08:07:48.78ID:+YPBfVMM
>>270
1- って関数名ですよ?
クォートされていないリストは
一つ目の要素が関数名、以後が引数として評価されます。

(1- n)
1- は関数名、nは引数 (注:関数1- は引数から1引いた数を返す関数)

参考;クォートされてるリスト例
'(* 2 3 ) (quote (* 2 3))
解説 (* 2 3 )はクォートされているので関数として評価されない

あなたの初めの書き方
(1 - n)
だと関数名は1で、- と n の2つの引数をもつことになる(正確に言えば、引数- と 引数n に 関数1を適用する、となります)
すると関数1は未定義だよと言われちゃいますね
同様に
(=n 0)だと
関数名はn= で引数は0となります。
ここでも関数=nは未定義といわれちゃいます
C言語のフリーフォーマットとはことなり、LispではスペースがS式での要素の区切り(デリミッター)になります。
スペースで分ければ2つの要素になるし
スペースを消して繋げればひとつの要素になってしまいます。
ちなみに(=n 0)が正しい適用かどうかは関数定義されてるかどうかによります。もし
(defun =n (x )
(zerop x))
と定義されていれば
(=n 0) => t
ですね

274デフォルトの名無しさん2015/09/27(日) 22:01:13.24ID:BTnSG6Xd
windowsでclispとquicklispでcffiを触ってみようと思ったんですが
(cffi:define-foreign-library test
(:windows "test.dll")
(t (:default "test")))
(cffi:use-foreign-library test)
で、testが開けません
パスは正しいし他の言語からもリンクできるライブラリですが、
何処がおかしいのでしょうか?

275デフォルトの名無しさん2015/09/29(火) 11:03:45.13ID:KkwgeqRl
>>271
32bitだからそんなにしないよ。
今とりあえず、いじくりまわぢてる。

2762742015/10/01(木) 02:50:50.32ID:tesABx2F
自己レスですが、CLISPで散々いろいろ試したけどどうにもならなかったので
SBCLに変えてみたらまともに動くようになりましたので報告

277デフォルトの名無しさん2015/10/03(土) 13:14:55.68ID:IK0Y+UBj
perl の perldoc
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'

278デフォルトの名無しさん2015/10/03(土) 13:24:00.92ID:8AFtPGV4
xyzzy上でで良ければ
reference.xmlから
reference.txtや reference.chm使って補完できるよ
足りない関数名ややシンボル名は静的補完ファイルに登録するか、reference.*に追加するか

279デフォルトの名無しさん2015/10/03(土) 13:25:24.46ID:8AFtPGV4
あ、ヘルプもね

280デフォルトの名無しさん2015/10/04(日) 00:50:00.79ID:FtwpBXng
>>278,279
ひょっとして >277当てか?

後出しになってしまって申し訳ない
cygwin clisp と Linux clisp を使っています
SLIMEの方はそれぞれ NTEmacs と Linuxのaptitude で入る方のemacs

だから aptitude apt-cyg svn git wget などで落としてインストールし
zsh上で pydoc ... 等と同様に呼び出したい

281デフォルトの名無しさん2015/10/04(日) 08:39:36.15ID:QJUtVfl7
>>280
>>277のリンク先(HyperSpec)のことなら、ダウンロードはLispWorksのサイトのこのページから。
http://www.lispworks.com/documentation/common-lisp.html
"This HTML document may, subject to certain conditions, be downloaded for use at other locations."
という段落の "downloaded" が、HyperSpecのHTMLファイル群を固めたTar書庫へのリンク。

ローカルに置いたHyperSpecを「zsh上で pydoc ... 等と同様に」参照できるコマンドは多分無いと思うけど、
EmacsのSLIMEからブラウザで開くことは出来る(シンボルの上で C-c C-d h)。
https://common-lisp.net/project/slime/doc/html/Documentation.html

設定はこんな感じ(展開したHyperSpecディレクトリをホームディレクトリに置いた場合):

;; HyperSpecのディレクトリ(URL形式)。
(setq common-lisp-hyperspec-root (concat "file://" (expand-file-name "~/HyperSpec/")))

;; HyperSpecを `eww' (Emacs 24.4 以降に内蔵のウェブブラウザ) で開く設定。
;; (それ以外のURLはデフォルトのブラウザで開く)
(setq browse-url-browser-function
`((,(concat "^" common-lisp-hyperspec-root) . eww-browse-url)
("." . browse-url-default-browser)))

282デフォルトの名無しさん2015/10/04(日) 15:04:33.13ID:FtwpBXng
>>281
なるほど
ありがとう
これでもう大丈夫になりました

2832822015/10/06(火) 16:16:19.87ID:QezNm1t4
localリファレンス用のzshコマンドのために書いた
#!/usr/bin/env python3
import urllib.request
import re
import os
import subprocess
import sys

# USAGE: this-script.py or this-script.py [Symbol]
ref_dir = os.environ["HOME"] + "/lib/HyperSpec/"
ref_top_dir = ref_dir + "/Front/X_AllSym.htm"
if len(sys.argv) == 1:
  to_Symbol_list = "w3m " + ref_top_dir
  subprocess.call(to_Symbol_list, shell=True)
elif len(sys.argv) == 2:
  top_as_html = "file://" + ref_top_dir
  with urllib.request.urlopen(top_as_html) as res:
    html = res.read()
    is_Symbol = 'Body/.+?#' + sys.argv[1] + '"'
    url_suffix = re.sub("#.*", "",
              "".join(re.findall(is_Symbol, html.decode())))
    if url_suffix:
      do_w3m = "w3m " + ref_dir + url_suffix
      subprocess.call(do_w3m, shell=True)
    else:
      print("The symbol was not found.")
else:
  print("Please input 0 or 1 Symbol of Lisp.")

284デフォルトの名無しさん2015/10/18(日) 00:46:38.25ID:tKz57RTt
話題になってないけど、
コンスセル原器が廃止されるらしいぞ

285デフォルトの名無しさん2015/10/18(日) 00:53:59.90ID:evkMpRYg
え?

286デフォルトの名無しさん2015/10/18(日) 08:54:54.56ID:1LMJTfhY
http://www.jwz.org/blog/2015/10/cons-conflict-resolved-at-last/
これだね。メートル原器もなくなると言うし、
時代の流れを感じるね

287デフォルトの名無しさん2015/10/19(月) 22:17:19.25ID:v3Pllrwr
コンス原器とか言ってるのはもちろんネタだからな、わかってると思うけど
メートルの定義が科学的なものに置き換えられるから、そのパロディだからな?

288デフォルトの名無しさん2015/10/20(火) 12:37:44.25ID:z0N4BuQy
原器は力が溢れている。 元気だから。 なんちゃってーー

289デフォルトの名無しさん2015/10/21(水) 00:22:44.88ID:vQvk97RO
原器があればなんでもできる!

290デフォルトの名無しさん2015/10/21(水) 02:26:28.45ID:FfxQn45L
ネタだったのか
どういうものなんだろうと唸りながら考えていた俺

291デフォルトの名無しさん2015/10/21(水) 11:49:26.05ID:NJ/LNABV
やる気原器いわき的な

292デフォルトの名無しさん2015/10/22(木) 09:17:07.87ID:gRBaWwNT
グレアムの魔道書からではなく
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。

293デフォルトの名無しさん2015/10/22(木) 23:40:53.70ID:rUneY+ez
>>273
ありがとうございます。今はじめて>>273さんの書き込みを読みました。
しばらく時間が経ったのでclispのことを忘れてしまいました。
ぼちぼち回復するようにがんばります。

294デフォルトの名無しさん2015/10/24(土) 04:48:56.04ID:sSEtncll
>>292
コードの美しさを感じ取れるといいコードが書けるようになるよ
コードは書くよりも読むほうが、うんと多いから

295デフォルトの名無しさん2015/10/26(月) 23:33:50.22ID:cnZS0lks
>>286
スレ違いなツッコミだがメートル原器はずっと前に基準でなくなっている
最近の話題はキログラムの方だな

296デフォルトの名無しさん2015/10/27(火) 04:19:42.73ID:qSWumRv1
>>294
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。

297デフォルトの名無しさん2015/11/12(木) 23:53:54.83ID:Viwd1W6j
Schemeだとtyped racketとか型つけるのが流行っぽいけどcommon lispも似た感じになってたりします?

298デフォルトの名無しさん2015/11/13(金) 13:06:25.41ID:mBt3iEyA
Haskellは時々仕様が変わるから安心して使えない

299デフォルトの名無しさん2015/11/15(日) 22:48:26.04ID:NgFg0iNO
Arrow-macrosというの見つけた
なんかだ好き
-<> はダイアモンドの杖だって

https://github.com/hipeta/arrow-macros/

http://quickdocs.org/arrow-macros/

300デフォルトの名無しさん2015/11/15(日) 22:49:19.75ID:NgFg0iNO
あ、誤字
なんだか好き

301デフォルトの名無しさん2015/11/18(水) 00:22:55.99ID:D8xoadz9
>>299
うーん、ちょっと使ってみたいけど、
後からワケが分からなくなりそうで不安

302デフォルトの名無しさん2015/11/26(木) 00:14:06.33ID:uCvAjqGD
> LLVMベースのCommon Lispコンパイラ「Clasp」の開発チームは11月20日、最新版となる「Clasp 4.0」を公開した。
> Clasp 0.4ではインラインコンパイラの「CClasp」を一新し、最適化機能も強化された。

https://osdn.jp/magazine/15/11/25/161300


0.4 と 4.0 を間違えるなよ大違いだろ

303デフォルトの名無しさん2015/11/26(木) 20:05:43.69ID:gXyRUJBd
llvmはフリーなソフトウェアの敵
みたいなことをハッカー界隈の偉い人が言ってなかったっけ?

304デフォルトの名無しさん2015/11/27(金) 06:16:02.28ID:1fwdzPCg
GPL 教団の人だな

305デフォルトの名無しさん2015/12/03(木) 01:47:18.74ID:mCOP4ysm
llvmやjavaなどのgpl教団に狙われやすいcl
Schemeはそんなことないのに

306デフォルトの名無しさん2015/12/23(水) 21:05:51.95ID:83EO6D9Q
単純な質問なのですが、CommonLispにはリードマクロっていう構文解析機を自分で作れるてきな機能がありますが
これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが

ただ、触った感じ
・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。
・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。
・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった
このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。
OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので

307デフォルトの名無しさん2015/12/24(木) 00:08:08.80ID:SRfs7Doz
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html

308デフォルトの名無しさん2015/12/24(木) 00:09:04.10ID:SRfs7Doz
【 オンラインTCGエディター 】   >>1,>>307

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当PGを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1450555747/-20

309デフォルトの名無しさん2016/01/23(土) 06:54:59.99ID:62o9ix/6
こないだ出た common lisp recipes の電子版 http://www.apress.com/9781484211779 が2月1日までセールだとか(ダイレクトマーケティング)

310デフォルトの名無しさん2016/02/03(水) 08:45:51.54ID:TXUepsJB
Pypiみたいに誰でもパッケージ登録出来るリポジトリが欲しい

311デフォルトの名無しさん2016/02/04(木) 09:02:39.44ID:0n3FRGss
>>306
そもそも頻繁に使うようなものでもないし、廃れるという表現は違和感ありますな。
使う人は使っているけど、他人に迷惑をかけるかもしれないので、使用する際は注意して自己責任でやってくれと。

312デフォルトの名無しさん2016/02/20(土) 11:39:04.63ID:NPEQ4RNb
>>309
実用Common Lisp Kindle版も半額だなあ
翔泳社のKindle本が半額セールなんだとか

313デフォルトの名無しさん2016/03/19(土) 19:16:42.97ID:zF/sbIkf
bordeaux-threadsを使って標準出力に"hello" と出力しようとして

(bt:make-thread #'(lambda () (sleep 2) (princ "hello")))

としてみたけど、何も出力されなくて、

(bt:make-thread #'(lambda () (sleep 2) (princ "hello" #.*standard-output*)))

としたら、出力されました。
どうして*standard-output* で出力できず、
#.*standard-output*を使うと出力されるのでしょうか?

314デフォルトの名無しさん2016/03/20(日) 18:36:25.23ID:DDfYHSLd
*standard-output* がスペシャル変数だから、クロージャに参照を閉じ込められないせい。
スペシャル変数は、いわゆる動的スコープになる。

3153132016/03/21(月) 08:20:05.67ID:GwpV/7VW
>>314
なるほどー。そういうことですか。
それで、#.を使うのですね。
ありがとうございます!

316デフォルトの名無しさん2016/03/21(月) 08:59:13.60ID:wDZuq9VI
実践common lisp みたいな本を書くリスパーが少ないのはなぜなのでしょうか?
リスパーは common lisp をあまり広めたくないということなのでしょうか?

317デフォルトの名無しさん2016/03/30(水) 12:55:55.23ID:7zl3Df3d
実践common lisp みたいな本を買う人が少ないから

318デフォルトの名無しさん2016/03/30(水) 19:31:52.93ID:O7ZXJNVV
Lispってちょっと勉強でつつく人は多いがガッツリやる人は少ないからね。

319デフォルトの名無しさん2016/03/30(水) 20:10:40.09ID:8q+dx1kL
>>318
にわかLisperの存在が一番Lisp族言語のユーザに迷惑なんだよねぇ orz
haskelとかjs界隈もそうみたいだけど。

良いも悪いも全部ひっくるめてLisp(あるいは言語X)で何かを作ることがすきな人にとっては大迷惑。

320デフォルトの名無しさん2016/03/31(木) 01:45:19.30ID:C1c6UsPS
にわかが居ないのなんて、死んだ分野だけだよ。
成果出してればノイズは気にならないが、どんな迷惑が有るの?

321デフォルトの名無しさん2016/03/31(木) 19:20:58.97ID:fxztU3O6
>>319
山は裾野が広くないと高くはなれんぞ
お前は挫折したLisperの屍の上に登れ

322デフォルトの名無しさん2016/03/31(木) 19:24:02.44ID:JUFQTQot
俺の屍を越えてゆけ

323デフォルトの名無しさん2016/03/31(木) 20:22:01.85ID:X8/ytHGi
俺を踏んでくれ今scheme手習い中だ

324デフォルトの名無しさん2016/04/01(金) 12:10:45.45ID:cNuDUjMS
>>320
scheme派 vs CommonLisp派の罵り合いにpythonとruby好きが横からドロップキックで乱入みたいなblogとかmlとか
黒板人の話とかにわかどうしだけじゃないのが頭痛いと思う

325デフォルトの名無しさん2016/04/01(金) 19:44:05.93ID:1eTBcwLx
議論の体でそれぞれのメリット/デメリットを天秤に乗せてるだけで、
罵り合いといというわけではないと思うんだが。
ディベートですらない、茶番だろ。

326デフォルトの名無しさん2016/04/02(土) 00:57:27.46ID:HVYESdUP
Maximaが使えるcl以上の存在はあるのか?
他言語の数式処理は微妙なのしかない

327デフォルトの名無しさん2016/04/02(土) 11:14:05.11ID:H6gllaBZ
sbcl にて,TCP ソケットを使ってプロセス間通信するライブラリを
使えるようなりました.これによりバイト列までを送ることは出来るようになったのですが,
S 式をどうやって送ればよいか分かりません.
S 式や lambda 式をバイト列にエンコード(?)する方法などはあるのでしょうか?

328デフォルトの名無しさん2016/04/02(土) 12:26:41.02ID:k2fP1WMZ
>>327
S式を丸ごと文字列で投げても良くない?

329デフォルトの名無しさん2016/04/02(土) 12:31:05.73ID:k2fP1WMZ
追加:
最近Webサーバの仕事してるんだけど、JSONとかClojureのリテラル表記(datomicの処理)でやりとりするからS式をバイナリ通信(JSONに対応するならBSON)にする意義が出る場面って凄い少ないんだよね

330デフォルトの名無しさん2016/04/02(土) 16:05:25.84ID:H6gllaBZ
>>328 さんくす.
そっか.データのリストなら (format nil ...) で文字列にすればできますね.
その線でまずはやってみます.
ただ,それだと関数が送れないですね.
FUNCTION-LAMBDA-EXPRESSION の出力とかを送るのかな―.

331デフォルトの名無しさん2016/04/02(土) 17:44:40.57ID:4LcO4yg1
関数は環境がぞろぞろとくっついてるから、シリアライズは容易でない。
動作中のイメージをまるごと移送するのなら出来なくもないと思うけど……、そんなことがやりたいのか?

332デフォルトの名無しさん2016/04/06(水) 23:14:32.62ID:3jnY8rH1
Windows環境でClozure CLのホームディレクトリは%USERPROFILE%なのでEmacsの起動バッチで
%USERPROFILE%と%HOME%を独自に設定して起動してSlimeを使うとHyperSpecが引けなくなってしまう
何か回避策無いですかね〜。超不便だわ

3333322016/04/06(水) 23:18:58.11ID:3jnY8rH1
ChromeじゃなくてIEを標準ブラウザにしたら動いたw

334デフォルトの名無しさん2016/04/06(水) 23:55:35.66ID:3jnY8rH1
browse-url-generic-programでChromeのフルパス指定してやって一見落着じゃ
LispよりEmacsのがハードル高いわ

335デフォルトの名無しさん2016/04/07(木) 00:31:50.58ID:838jiYpM
型が緩いhaskellという印象は合ってる?

336デフォルトの名無しさん2016/04/07(木) 02:04:56.57ID:DadLuQug
離れすぎているからどこが同じでどこが違うとかいうのはいちいち列挙できへんわ。
Haskell っぽい部分だってそりゃあるだろうし、場合によっては Haskell 風のコードをそのまま持ち込めることだってある。
でも、やっぱり全然違うわ。

337デフォルトの名無しさん2016/04/07(木) 03:12:28.37ID:69hNyYMv
Haskellでmaxima以上に便利な数式処理ソフトあります?

3383342016/04/07(木) 18:56:54.61ID:ccUxIyvt
バッチの中だけでも%USERPROFILE%を変えるのは副作用が大きすぎて駄目じゃ。
全然、一見落着じゃないやんけ orz

339デフォルトの名無しさん2016/04/10(日) 19:23:57.88ID:vkQXckPD
なぜか関数型ってくくり方でまとめられるときがあるけどまあ全然違うわな。

340デフォルトの名無しさん2016/04/14(木) 10:33:43.60ID:HoZEVK9B
Windowsでスタンドアローンアプリ化するとコンソールアプリになるけど
コンソールウインドウ消す方法はないの?
GUI画面のとき邪魔

341デフォルトの名無しさん2016/04/14(木) 12:27:26.25ID:ahglGqCD
SBCLにはGUIオプションがあった。
他のには無いっぽいな。

このスレには人が居ないんか?

342デフォルトの名無しさん2016/04/15(金) 19:54:55.30ID:pOJBl4dX
2chがもう廃れてるしな

343デフォルトの名無しさん2016/04/15(金) 20:29:42.54ID:mBIjTfFV
じゃ、何処へ逝ったら良いんだ?

344デフォルトの名無しさん2016/04/16(土) 11:26:52.60ID:8wMWxABn
こうなりゃ昔めんどうみた平手の造酒んとこでも行くか

345デフォルトの名無しさん2016/04/16(土) 13:27:14.87ID:bPs+CkgD
初心者でLisp全然まだ分かってなくて、本を読みながら色々実験しているんだけど、
socketで使ってunicodeのデータをやり取りしようとしたら、どうしても文字化けしちゃって困った。
:external-formatとかいろいろ試したけどダメだった。
結局、flexi-streamsってライブラリ使ったらなんとかなったんだけど、こんなことでも外部のライブラリに頼らないといけないの?
それとも僕がアホなだけなのかしら?もっといい方法あるのかな。lispworksがおかしいだけか?

でも、プログラミング自体初心者なのにやりたいことは実現できちゃったのはビックリ。
replで実験しながらできるのがいいね。

346デフォルトの名無しさん2016/04/16(土) 16:36:43.09ID:MGs6Ga+C
>>345
文字コードがらみは純粋なdata streamとは別の領域なんで汎用言語全部が持ってる病の一種なのでどもならんのですよ。

347デフォルトの名無しさん2016/04/17(日) 21:44:33.74ID:goQ5YOot
割と取っ付きやすい言語だと思うんだけどね〜。

348デフォルトの名無しさん2016/04/18(月) 12:23:07.50ID:6QlHoC4+
slime必須な開発環境がネックかもね
まあLispBoxまんま使えば良いけど

349デフォルトの名無しさん2016/04/24(日) 22:39:11.27ID:scaRHXPI
emacsが嫌いでもAtom-Slimeあるぞ!

350デフォルトの名無しさん2016/04/25(月) 09:16:48.45ID:W8v031Mp
>>349
そんなんあるんかー

351デフォルトの名無しさん2016/05/01(日) 15:18:51.08ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

352デフォルトの名無しさん2016/05/16(月) 08:34:14.29ID:fo7lQzzV
closによるオブジェクト指向を勉強している最中だけど、Javaやc++と違って、プライベートな変数や関数とかないの?

そうなると、あまり弄って欲しくない変数とかを弄るような危ないコードとか書けちゃうけど、それはプログラマーの裁量に任されているの?

353デフォルトの名無しさん2016/05/16(月) 21:45:38.72ID:jtYky004
パッケージとか言ってみる

354デフォルトの名無しさん2016/05/19(木) 02:07:18.56ID:jTIEwZO7
closは実行時になんでも弄れる仕組みになっているので隠してもしょうがない
その代わりJavaやC++とは比較にならないほど動的
お勉強するなら遅延バインディングなどに代表される動的さを学ぶのが有益
(定義時に存在しないクラスのスロットをごにょごにょするなど)

355デフォルトの名無しさん2016/05/19(木) 04:03:53.01ID:lKV7/eW/
> https://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3A%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E6%AD%A3%E8%A7%A3#H-22ymh4zauzzn9
> 「どんなに汚くても、打てる手段がある」というのは 何物にも替え難い救いなのです。

356デフォルトの名無しさん2016/05/20(金) 13:08:49.10ID:JbHmc+E3
EmacsにはCLOSエミュのeieioがあるけどそれだとプライベートメンバーが作れる
当然eieioの場合はインスタンスは配列だから無理矢理いじろうとすれば可能だけど
うっかり触る事は出来なくなる
(slot-valueでアクセス出来なくなるとかsetfで書き込めないとか)

357デフォルトの名無しさん2016/05/23(月) 01:28:42.95ID:wfdlAGNm
>> 355
eieioのそれほんとに機能してる?
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00402.html
closならmopで実装だろうね

3583562016/05/23(月) 18:45:02.73ID:sxSKeUhG
>>357
ちゃんと機能してるよ
:reader :accessor 経由だとどこでもアクセス出来る
それらを定義しないで slot-value 経由でアクセスすると
定義された class 用の defmedhod 内じゃないとエラーになる

3593562016/05/23(月) 18:54:51.46ID:sxSKeUhG
>>358は間違えた
slot-value 経由でも defmethod 内ならどんな class 用のでもアクセス出来ちゃってた…
>>357のリンク先の通りだった
もしかしたら次のバージョンなら直ってるのかもしれない

360デフォルトの名無しさん2016/06/23(木) 23:59:50.36ID:G+YERTIa
Common Lispの規格を進化させようと日本人が頑張ってるサイトがあった気がしたけど全く見つからない
教えてくれ

361デフォルトの名無しさん2016/06/24(金) 00:22:49.85ID:RDdMjpj7
身も蓋もないけど
コモン規格なんだから
枯れてた方が良いんじゃねーの

362デフォルトの名無しさん2016/06/24(金) 12:20:42.94ID:Iu+HWWVT
もっと太らせる気なのか
今でも巨デブなのに

363デフォルトの名無しさん2016/06/24(金) 15:11:04.73ID:RDdMjpj7
この機能が足りないって思ったら
ライブラリ提供すればいいんだよ

規格を変えるってのは
よほど説得力がないと難しい

3643602016/06/24(金) 15:12:24.11ID:64NOMHgE
Common Lispのこの関数はこうすべきだったとか色々書いてて面白かったが
ふと思い出してまた見たくなったけどググっても全然出てこなくて余計に見たくなってる…
もう少し探してみるよ
slideshareだったかな…

3653602016/06/24(金) 16:07:31.75ID:64NOMHgE
http://www.slideshare.net/fukamachi/redesigning-common-lisp
これだった
日本語で一生懸命検索してたからそりゃ出てこないわけだ…お騒がせしました

366デフォルトの名無しさん2016/06/24(金) 16:41:47.94ID:YpPFayvt
CommonLisp好きだけど未だに関数をfuncallで呼ばないとイケナイ名前空間の扱いだけは理解できない。
なんで分けたんだろうって解説どこかにないかな?

367デフォルトの名無しさん2016/06/24(金) 17:42:01.98ID:t8u1m238
>>365
ああ、CL21 の人のか。

368デフォルトの名無しさん2016/06/24(金) 20:04:29.17ID:hXccTKlm
>>366
物事をカテゴライズして名前空間分けたいってニーズは別に変じゃない。
そういうの他の言語でもあるよね。
察するに言語設計者自信がその時偶々欲しかったのが入っちゃうんじないかな?

369デフォルトの名無しさん2016/06/24(金) 20:25:53.91ID:d6du9t53
動詞と名詞を兼ねる単語が多すぎる英語にそもそもの問題があるやも
list然りmap然り

370デフォルトの名無しさん2016/07/01(金) 20:10:20.19ID:yQsAPI3T
質問だけどAllegro CLで実行ファイルを作成するとサイズはどれぐらいになる?
SBCLだと40MB超えるけどAllegro CLだとどうなるか気になったので

371デフォルトの名無しさん2016/07/02(土) 12:59:00.03ID:OqC3vtTc
よく見たらAllegroで実行ファイルを作成出来るのはEnterprise版以上だった
そもそもEnterprise版を使った人がいなさそうだな…

372デフォルトの名無しさん2016/07/02(土) 17:34:13.78ID:FM4LazWe
それは、「お前ら貧乏人ばかりだな」と言ってるのと同じだな。

373デフォルトの名無しさん2016/07/02(土) 17:43:37.01ID:wOG82f10
>>372
いや、流石にAllegro Enterprise を個人で買うのは滅多居ないだろw
つかオンライン販売も小売りもとりあえずsalesへメールからってくらいだし、そもそも買ってる人自体特定業種のプロだけじゃねぇの?

374デフォルトの名無しさん2016/07/03(日) 12:32:44.64ID:i88MiToD
数理システムだと社内で使ってるんじゃないの
中の人はこのスレ見てないか

375デフォルトの名無しさん2016/07/03(日) 21:01:01.25ID:yj3P75/T
Professionalだと6万ぐらいだから個人でも買えなくもないけど
Enterpriseはいくらすんだろ?
数十万はしそうだけど仕事で使うんなら払える額でもあるな

376デフォルトの名無しさん2016/07/03(日) 22:27:03.67ID:ZjY2/t9+
>>375
まじ6万?!
Lispworksより安いような。

377デフォルトの名無しさん2016/07/03(日) 23:13:52.65ID:nqVZhyDy
>>376
Professinal版って32ビット版しかないかじゃないか?

378デフォルトの名無しさん2016/07/04(月) 14:40:11.42ID:k9kiUpvM
LispWorksの実行ファイル書き出しは最小で6.5-7.5MBぐらいからみたいだからかなりいいな
けど64bit版がfor Hobby Usersとか書いてるくせに$1,500とか高いし…

379デフォルトの名無しさん2016/07/05(火) 02:57:14.28ID:HX6TWKu0
ECLは?

380デフォルトの名無しさん2016/07/06(水) 15:08:51.31ID:3m0XVVXB
ECL使った事ないけど実行ファイルを作成したら普通にC言語で作ったぐらいのサイズになるんだろうね
あと似たようなのにClaspがあるけど埋め込みするには今後はこっちが主流になるかな

381デフォルトの名無しさん2016/07/12(火) 23:20:50.64ID:CyKbMfvi
Common Lispの処理系がわざとバグを入れてmaximaが動かなくなるように仕向けてるようなのを見つけたのだけど
Abclとclispはgnome3と同じ状態になってる?

382デフォルトの名無しさん2016/07/13(水) 04:54:37.74ID:4HQ8M+Y/
maximaは主に古い仕様のcommonlispで動く
処理系が古い仕様のサポートをやめることをmaxima切り捨ての陰謀とするなら
そうなんじゃないの
maximaが合せるのが筋だろ

383デフォルトの名無しさん2016/07/13(水) 05:14:45.73ID:7U1J32do
互換性を保てないならcommonなんて名乗らないでほしい

384デフォルトの名無しさん2016/07/13(水) 10:56:35.33ID:/T6M1MVl
Commune Lisp

385デフォルトの名無しさん2016/07/13(水) 15:43:05.70ID:xtHEpCPd
gommen lisp

386デフォルトの名無しさん2016/07/13(水) 22:43:00.43ID:Fcdf94Kw
sourceforgeが死んでてMaximaのサイトにアクセス出来んぞ…
SBCLのサイトにもアクセス出来ないしCL界隈はsourceforgeに依存してるとこが多いな

387デフォルトの名無しさん2016/07/13(水) 22:49:06.02ID:/T6M1MVl
アドウェア配布サイトに依存するとはいかんな

388デフォルトの名無しさん2016/08/12(金) 21:39:14.20ID:duu5cHW/
フリーソフト作る目的でAllegro CLのAcademic版のEnterprise版買った方いませんか?
非商用目的で64bit版の実行ファイルを作れるとなると、Enterprise版でAcademic版を買うのがよいのかなと。
(そもそも、条件にマッチしてるかわかってないですが)

Academic版ならEnterpriseでも意外にお手頃価格で買えたりしないかな?

そういえば、Allegro CLの日本代理店って撤退したんですかね?
HPが消えてるのか、アクセスできないですね。

389デフォルトの名無しさん2016/08/13(土) 20:37:11.64ID:moPmKDp5
>>388
Allegroはなぁ、ネタに値段書いていない銀座の寿司屋のイメージが

390デフォルトの名無しさん2016/08/24(水) 21:29:45.05ID:9kP9ZOpP
何千桁もあるbignumを適当な所に小数点を打ったり10桁毎にスペースを入れたり
100桁毎に改行して表示したいけど、formatでやる方法があったら教えてくれ

391デフォルトの名無しさん2016/08/25(木) 00:53:05.88ID:zjrUiCsA
>> 390
ない.
調べるよりプログラム書いた方がはやい.loopマクロで5行位で書ける.
どうしてもformatつかうなら自分で書いてformatの~/で呼べば?

392デフォルトの名無しさん2016/08/25(木) 09:19:55.78ID:1bKygDuA
>>390
(format t "~,,' ,10:D" 222232244629420445529739893461909967206666939096499764990979600)
222 2322446294 2044552973 9893461909 9672066669 3909649976 4990979600

> 2.3.1 ~D ― Decimal
> arg の消費: 1個
> パラメータ: ~ mincol , padchar , commachar , comma-interval D
(中略)
> ` : ’ で修飾すると,下から comma-interval 桁ごとに commachar で指定された文字で数字を区切る ( comma-interval のデフォルトは3, commachar のデフォルトは ` , ’ ) .
http://super.para.media.kyoto-u.ac.jp/~tasuku/format-func.html

上の例だと commachar は空白、comma-interval は 10、他のパラメータは無し
文字をパラメータにする場合その文字の頭に単引用符 ' を付けて表す
改行もOK

(format t "~,,'
,1:D" 123)
1
2
3

3933902016/08/25(木) 13:02:06.57ID:fbmJygYr
返答どうも!
>>391
formatのドキュメント見ても無さそうだったから聞いてみたけど、やっぱりないんだね…
素直にloopでやることにする

>>392
そうか、カンマをスペースにすれば10桁区切りは出来るのか
100桁目を改行に出来れば最高だが、あまり大きくないbignumならこれで十分か
とりあえずありがとう

394デフォルトの名無しさん2016/08/25(木) 14:33:57.04ID:6zcPyAfh
学習用にC++で書いた楕円曲線暗号のデバッグの時にBignum何度も目視したの思い出してちと鬱が入るなぁ

395デフォルトの名無しさん2016/09/13(火) 11:41:49.02ID:J1eBbaIT
日本人コモンリスパーで有名な人って誰?
竹内センセーと苫米地ハカセ以外で!

396デフォルトの名無しさん2016/09/13(火) 22:25:28.74ID:8U9RmJUe
竹内センセーと苫米地ハカセは国際コモンリスパーとしての認知度は低いヨ
もちろんtakの竹内センセーは知られているけどコモンリスパーじゃないネ
トマベチ? ダレ?
fukamachi ,kuroda は広く知られているヨ

397デフォルトの名無しさん2016/09/14(水) 07:54:21.71ID:JzjCbHsO
国内の知名度ではドクター苫米地が圧倒的だろう

398デフォルトの名無しさん2016/09/22(木) 11:55:47.84ID:svLBF04r
何がまずいのかわからん。
誰か教えて。

(defun f (x) (* 2 x))
(defun g (y z) (y z))

(g f 3)

*** - SYSTEM::READ-EVAL-PRINT: variable F has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of F.
STORE-VALUE :R2 Input a new value for F.
ABORT :R3 Abort main loop

399デフォルトの名無しさん2016/09/22(木) 12:41:06.30ID:Q0XXtJDC
>>398

(defun f (x) (* 2 x))
(defun g (y z) (funcall y z))

(g #’f 3)
6

Ref.
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functions.html

400デフォルトの名無しさん2016/09/22(木) 14:56:41.64ID:svLBF04r
>>399
動きました。
ありがとうございます。

401デフォルトの名無しさん2016/09/23(金) 21:24:52.87ID:CYp0vnmU
Scheme 系だと

(define (f x) (* x 2))
(define (g y z) (y z))

(g f 3)
6

って書けるんだね。

402デフォルトの名無しさん2016/09/23(金) 21:27:52.82ID:y9ZJGzw+
へ〜

403デフォルトの名無しさん2016/09/24(土) 05:38:26.18ID:nvb+KqdK
関数型のブームは来てるけど
HaskellとかScalaに押されてない?

404デフォルトの名無しさん2016/09/24(土) 08:10:52.77ID:VAyZ/8kj
GNU makeやgdbにguileがリンクされるようになったよ
もう少しの辛抱や

405デフォルトの名無しさん2016/09/24(土) 17:22:03.97ID:ryMydsM5
Common Lispはマルチパラダイムの言語だ
goto(go)すら存在する

406デフォルトの名無しさん2016/09/25(日) 21:24:57.99ID:HvtwLO9L
>>405
goはマッカーシーのlispからあるけどお。すらってなにい?

407デフォルトの名無しさん2016/09/25(日) 22:23:20.95ID:eD42xPoY
すらまっぱぎ

408デフォルトの名無しさん2016/09/26(月) 15:46:42.52ID:b0MmmDW8
>>406
Common LispのスレでCommon Lispと言って何か問題あるか?

409デフォルトの名無しさん2016/10/05(水) 23:25:20.08ID:C9cv9Gl5
>>366
Steeleが互換性考えて別にしたけど
やっぱり一緒にしとけばよかったーと後に述懐していた

410デフォルトの名無しさん2016/10/12(水) 15:59:00.20ID:RYqLfx9/
その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える

411デフォルトの名無しさん2016/10/12(水) 16:33:55.36ID:8kMwO8W7
今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。

412デフォルトの名無しさん2016/10/12(水) 16:34:06.22ID:M1jDwzz2
#fと'()の分離はなんでだったんや?

413デフォルトの名無しさん2016/10/12(水) 17:40:21.14ID:RYqLfx9/
それはSchemeスレでする話だな

414デフォルトの名無しさん2016/10/13(木) 20:07:13.89ID:xgGYMiuu
0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな

415デフォルトの名無しさん2016/10/13(木) 22:52:04.77ID:C1I1uhJH
いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。

416デフォルトの名無しさん2016/10/15(土) 20:05:40.07ID:HnVxap0b
デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。

417デフォルトの名無しさん2016/10/16(日) 18:14:50.68ID:r9fJMQJL
ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。

418デフォルトの名無しさん2016/10/16(日) 18:17:07.36ID:r9fJMQJL
>>417の書き込みの訂正

LEPLじゃなくてREPLです。

419デフォルトの名無しさん2016/10/16(日) 21:52:46.83ID:8ptZ6tcn
うちはSBCLだけど、たぶんloadでできる
$ cat hoge.lisp
(defun twice (f x) (funcall f (funcall f x)))
(defun dbl (x) (* x 2))
$ sbcl
This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
(略)
* (load "hoge")

T
* (twice #'dbl 3)

12

420デフォルトの名無しさん2016/10/17(月) 00:33:48.91ID:sDQTJcTS
>>419
おおおお
出来ました!!!
サンプルプログラムまで書いていただきありがとうございます。
Lispを初めて日が浅いのですが、とても分かりやすかったです。

421デフォルトの名無しさん2016/10/17(月) 09:04:24.02ID:QD9IQMc+
clisp の場合は
clisp a.lisp
という風にファイル名を指定するだけでも実行できるよ
この場合REPLとは異なり、特に何もしなくても自動的に終了する

sbcl には同様のことをする --script オプションがある

422デフォルトの名無しさん2016/10/17(月) 10:07:13.56ID:sDQTJcTS
>>421
なるほど、そういう方法もあるんですね。参考になります。

423デフォルトの名無しさん2016/10/18(火) 11:30:07.17ID:1ksiQ1k/
多分emacsでSLIME使うのが一番捗る。ある程度やって、もっと環境良くしたいと思ったら導入してみるといい
ファイルに書きなぐって一部だけ評価するとかできる

424デフォルトの名無しさん2016/10/23(日) 13:47:10.52ID:crofOT9u
(defparameter param #\a)
を生成するマクロ
(defmacro ch! (ch)
`(defparameter param #\,ch))
が、動かないのはなぜでしょうか?
教えて下さい。

425デフォルトの名無しさん2016/10/25(火) 08:55:35.68ID:dAAkpCke
424です。
どなたか、教えてください。

426デフォルトの名無しさん2016/10/25(火) 23:40:26.35ID:NdRXRry8
入力マクロを何と心得ておる

427デフォルトの名無しさん2016/10/26(水) 01:17:49.11ID:Z8ZLd5j0
>>425
面白い。426のいうとおり
リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。
(defmacro ch! (ch)
(read-from-string (format nil

428デフォルトの名無しさん2016/11/01(火) 15:37:56.06ID:d/Emm7ZQ
424です。
>>426
ご返答ありがとうございます。
「入力マクロを何と心得ておる」
リードマクロの事でしたら不勉強でした。
1文字づつ地を這う様なカスタマイズに思えて
lispっぽさが感じられず読む気が無くなるんです。
>>427
書きかけの続きを
ぜひ読みたいです。おねがいします。

macbookのOSX10.6で
iterm上のvimで選択したS式をscreenを介して
もう一つのitermで動くsbcl(又はclisp)に評価、
出力させるのを目標にしています。
なにか知っている事があればよろしくおねがいします。

429デフォルトの名無しさん2016/11/02(水) 05:41:35.19ID:ydCUsA37
>>428
割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/
vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない)

つかLisperならEmacsと心中するのが吉

#って感じなEmacsと入水心中の俺 orz
#Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ

430デフォルトの名無しさん2016/11/02(水) 16:50:18.95ID:Zl1DvHRz
SLIMEっぽいのは一応あるのね
http://www.vim.org/scripts/script.php?script_id=2531

431デフォルトの名無しさん2016/11/22(火) 20:43:31.30ID:KvJ3xe8B
独り言だが
ClojureとClozure CLってべつものなのか
Clozure CLはjava関係ないのね

432デフォルトの名無しさん2016/12/18(日) 08:12:54.17ID:H5VGjwqC
conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか?
simple-conditinとかにはあるのに

433デフォルトの名無しさん2016/12/18(日) 15:52:29.97ID:odpeYpuF
多重継承だから

434デフォルトの名無しさん2017/01/11(水) 12:56:06.91ID:Dj+amy8+
生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?

ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。

435デフォルトの名無しさん2017/01/11(水) 13:08:56.90ID:oS3M3jOK
Win機で開発するのが間違ってる

436デフォルトの名無しさん2017/01/11(水) 13:41:55.71ID:CpReZJmf
『プログラムの保存』とは一体……?

437デフォルトの名無しさん2017/01/11(水) 17:25:20.73ID:cn/qBmTu
BASICのSAVEか…

438デフォルトの名無しさん2017/01/11(水) 22:14:49.39ID:qtQ06epR
>>437
えっ ちょっと待って
今ラジカセ用意するから...間違えてLOADって打たないでね

439デフォルトの名無しさん2017/01/11(水) 22:20:44.82ID:LKP7w0Oz
www

440デフォルトの名無しさん2017/01/12(木) 00:33:15.10ID:ON8wOxBk
>>436
RPLだと関数も変数も必ずファイルとして存在する。
RPLの祖先のForthも同じかもしれない。

441デフォルトの名無しさん2017/01/12(木) 06:54:05.10ID:pNuRGDWl
ほしいのは、emacs+slime環境?
あるいはaclとかlispworks

442デフォルトの名無しさん2017/01/12(木) 09:59:06.51ID:wWrcziVQ
REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い

443デフォルトの名無しさん2017/01/12(木) 10:32:26.76ID:UNGksYU7
>>442
emacs環境だとLispよりもemacsの勉強になってしまうからなあ

444デフォルトの名無しさん2017/01/12(木) 13:02:34.77ID:bT7YUbCB
それならlemでいいんじゃない?

445デフォルトの名無しさん2017/01/12(木) 21:49:43.62ID:42JGZ5hK
xyzzyで

446デフォルトの名無しさん2017/01/13(金) 04:08:54.48ID:BzdeAQwY
>>442
>>443
同意、最初からEmacsは難しすぎる
LispよりEmacsの方が難しいくらい

447デフォルトの名無しさん2017/01/13(金) 11:27:29.66ID:QaVc2fKW
clispの開発が終わってしまったし

448デフォルトの名無しさん2017/01/13(金) 11:29:56.98ID:QaVc2fKW
>>442
emacsのlispってemacsのカスタマイズ用途なのでは?
アプリ作成用のlispがまだあるのかどうかは知らないが

449デフォルトの名無しさん2017/01/16(月) 16:21:04.42ID:qEdXmsgN
>>447
その情報のソースってどこかにある?
CLISP自体かなり前から更新されてなかったから終わったと言っても今更感があるけど…

450デフォルトの名無しさん2017/01/17(火) 11:28:47.60ID:sDlYunh0
>>449
長年更新していないので、オワタ可能性は高くね?

451デフォルトの名無しさん2017/01/18(水) 14:32:40.83ID:+0XE4PkH
Lispの仕事ってまだあるのだろうか?
古いシステムの保守程度?

452デフォルトの名無しさん2017/01/18(水) 23:04:07.71ID:JFSfmo96
どっかの会社で、common lispでやっているところがあったはず

完全に廃れた感じはしないな

453デフォルトの名無しさん2017/01/19(木) 09:03:33.76ID:Gh/NlR3g
>>452
どんな仕事なんだろう?

454デフォルトの名無しさん2017/01/19(木) 09:38:33.97ID:uhfgjGGl

455デフォルトの名無しさん2017/01/19(木) 12:17:01.00ID:TbaqbQZk
Lispと言えば、研究用途かWebサーバーで使うようなイメージしかないわ

456デフォルトの名無しさん2017/01/19(木) 21:19:55.80ID:gCwd8P05
お前の抱えるイメージなんかに誰か興味を持つと思ったのか?

457デフォルトの名無しさん2017/01/20(金) 00:42:56.98ID:rsnxDR2c
>>456
でも実際に何に使われているんだ?
研究専用言語だと思っていたのだが。

458デフォルトの名無しさん2017/01/20(金) 10:12:07.41ID:Nvso2zBq
>>456 みたいなBOTに使われているという実例

459デフォルトの名無しさん2017/01/20(金) 11:53:33.16ID:coMO3q54
LispはUNIX以外で実用的に使うのは無理なのかねえ?

460デフォルトの名無しさん2017/01/20(金) 12:28:28.14ID:SVUCN/eR
スレチだからlisp scheme スレでやれよ
http://echo.2ch.net/test/read.cgi/tech/1426481152
もっと釣れるぞ

461デフォルトの名無しさん2017/01/20(金) 12:48:36.11ID:8z9BkdPJ
Lisp はWebサーバ用の言語

462デフォルトの名無しさん2017/01/20(金) 19:20:31.02ID:XUVXYG0t
lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど

463デフォルトの名無しさん2017/01/21(土) 06:13:30.03ID:mYUPWk0d

464デフォルトの名無しさん2017/01/21(土) 11:57:50.59ID:0dQCqgGa
>>463
そんな読み物で何が分かるんだ?

465デフォルトの名無しさん2017/01/21(土) 16:17:15.46ID:UaDisbHg
roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない
こんな糞アプリ使えるかよ

466デフォルトの名無しさん2017/01/21(土) 16:57:44.64ID:QA6O+rWe
ここで聞いてももう駄目
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い

467デフォルトの名無しさん2017/01/21(土) 19:07:36.86ID:1H01QVS7
http://github.com/roswell/roswell の Installing scripts に
$ ros install fukamachi/qlot # will install it from the GitHub
って書いてあるけど知りたいのはこれじゃないってこと?

468デフォルトの名無しさん2017/01/22(日) 10:57:47.88ID:b2xXmV6K
>>404
言語組み込み解禁で誰かがluaに変えると予想

469デフォルトの名無しさん2017/01/29(日) 02:04:07.29ID:jpDTpmEM
Land of lispの動画見て来ますた

470デフォルトの名無しさん2017/01/29(日) 22:21:22.72ID:QjLLrAQA
>>469
いらっしゃーい

471デフォルトの名無しさん2017/01/30(月) 02:40:54.54ID:mBiYg09G
>>469
あの動画楽しいよね。

472デフォルトの名無しさん2017/02/01(水) 13:13:45.46ID:uPNpYJZg
わかる人いたら教えて下さい。
iterm2でrepl(sbcl)を最初から起動させようと
replというプロファイルを作り
.bachrcに

if [ "$ITERM_PROFILE" = "repl" ];
then
sbcl
fi

と書くと、たしかにsbclを実行するのですが
以下のメッセージが出て起動しません。

fatal error encountered in SBCL pid 3042:
can't find core file at /usr/local/lib/sbcl//sbcl.core

どうしたら良いのでしょうか。
ちなみに再度sbclと入力するといつも通り起動します。

473デフォルトの名無しさん2017/02/03(金) 00:03:57.75ID:uSnzwgyQ
コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか?
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない

474デフォルトの名無しさん2017/04/05(水) 00:10:33.71ID:dD5KS/CH
Common lispからpythonの特にnumpy関係のライブラリ使う方法ないのでしょうか?

475デフォルトの名無しさん2017/04/05(水) 03:18:41.90ID:9ywW0Xq5
>>474
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?

476デフォルトの名無しさん2017/04/08(土) 15:56:08.90ID:Uc8a2Yv6
Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ

Sparse matrix計算も出来ないみたいだし

477デフォルトの名無しさん2017/05/03(水) 04:46:48.46ID:94GhuONY
Cのプログラムがcuda使うと100倍速くなるのに
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?

478デフォルトの名無しさん2017/05/09(火) 20:10:22.37ID:v4p9YapF
>>477
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う

479デフォルトの名無しさん2017/05/09(火) 20:19:48.11ID:v4p9YapF
>>476
密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。

疎行列なら現状ラッパーが多分ないのでCFFIでcuSPARSEへのバインディングを書こう。

全結合のディープラーニングならMGLでCommon Lispのみでできる。

PythonのClojureライクなLisp方言ならHy(hylang)がある。
Pythonのライブラリが直接使いたいならこれを使えばいい。

480デフォルトの名無しさん2017/05/19(金) 19:45:50.96ID:N5yG+fmp
初心者です ハマってしまったので助けて下さい!
ファイルを読み込んで a=abcのような行を
(defparameter *a* 'abc)のようにするマクロなのですが
(readconfig "filename") だとうまくいくのですが
(readconfig (concatenate 'string "file" "name"))のように呼び出しても引数が評価されずにそのまま渡ってしまいます。

(defmacro readconfig (filename)
`(progn
,@(loop for i in
(with-open-file
(s filename :direction :input :external-format :utf-8)
(loop :for line := (read-line s nil) :while line :collect line))
collect
(let* ((l (split-sequence:split-sequence #\= i))
(a (read-from-string (concatenate 'string "*" (car l) "*")))
(b (second l)))
`(defparameter ,a (read-from-string ,b))))))

481デフォルトの名無しさん2017/05/19(金) 21:20:45.65ID:/bO1sGez
引数が評価されてないね

482デフォルトの名無しさん2017/05/19(金) 21:49:23.53ID:/bO1sGez
>>480
macroexpand で展開してみた?

483デフォルトの名無しさん2017/05/19(金) 21:58:39.33ID:N5yG+fmp
>>482
concatenateの方はエラーがでます
普通に文字列を渡せばうまくいくのですが

484デフォルトの名無しさん2017/05/20(土) 00:30:38.53ID:ZKXptbMB
>>480
どうしてマクロにしたの?初心者だから?

485デフォルトの名無しさん2017/05/20(土) 01:15:39.37ID:I6lRK30f
>>484
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね

486デフォルトの名無しさん2017/05/20(土) 01:30:33.54ID:I6lRK30f
問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!

487デフォルトの名無しさん2017/05/21(日) 06:36:36.81ID:oB72Q+Da
OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ

488デフォルトの名無しさん2017/05/21(日) 06:50:43.54ID:oB72Q+Da
typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?

489デフォルトの名無しさん2017/05/21(日) 19:45:11.09ID:jy5dosQP
>>488
common lispのコンパイラでも型推論くらいするの知ってるか?
それがどう駄目なのか,どうしたいのかをまず書けよ.

490デフォルトの名無しさん2017/05/22(月) 06:10:33.21ID:Suxf7jk2
sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った

491デフォルトの名無しさん2017/05/22(月) 19:06:44.55ID:cqwt5c+d
sbclのdescribeで
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか

492デフォルトの名無しさん2017/05/25(木) 21:17:35.11ID:1hi1bgKK
>>490
> sbclのtheのdescribe
が意味するところが分からない.

493デフォルトの名無しさん2017/05/31(水) 17:40:47.18ID:PPe5oyts
Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか

c言語の解析するサンプルコードなら他のでも良いです

494デフォルトの名無しさん2017/07/09(日) 02:25:04.88ID:ryDnV29I
誰か知っていれば教えてほしいのですが
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。

495デフォルトの名無しさん2017/11/08(水) 02:39:25.32ID:Uoqj8nW+
TEST

496デフォルトの名無しさん2017/12/06(水) 00:55:26.32ID:eBsnaSfJ
テスト

497デフォルトの名無しさん2018/02/16(金) 05:55:09.54ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

498デフォルトの名無しさん2018/05/23(水) 21:07:30.15ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

HSR58

499sage2018/06/08(金) 07:24:37.45ID:j+JfgiN4
ところでlabelsって関数の名前の由来って何?
しっくりこない

500デフォルトの名無しさん2018/06/17(日) 11:25:32.22ID:eEWfV0tw
>>477
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。

501デフォルトの名無しさん2018/06/19(火) 02:22:17.89ID:q+1hh2rS
>>500
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ

502デフォルトの名無しさん2018/07/04(水) 22:29:25.87ID:gFgZc5FG
V3Z

503デフォルトの名無しさん2018/07/05(木) 16:53:25.50ID:AeL6VB/V
V3Z

504デフォルトの名無しさん2018/07/13(金) 17:19:54.02ID:EPDxLdrK
こないだ迄Windows10の64bit版ではDEPの絡みで動かないと思ってた、SBCL版のMaximaが、
今試してみたらあっさり動いてしまいました。
sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった
筈なんですが…。

うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか?

5055042018/07/13(金) 17:28:05.78ID:EPDxLdrK
SBCL自体を別途インストールしたのが効いてるのかも知れないなぁ…。

506デフォルトの名無しさん2018/09/11(火) 03:59:06.82ID:u3nXUIwD
Lispってwebフレームワークありますか?
一通りの機能のあるブログを作ったり出来るような

507デフォルトの名無しさん2018/10/03(水) 18:50:06.50ID:1GTVcIse
質問です。

Lispで書かれたLisp処理系はありますか?

508デフォルトの名無しさん2018/11/03(土) 15:30:34.57ID:3XdSQ+AZ
中学卒業までにコモンリスプ極める!

509デフォルトの名無しさん2018/11/14(水) 08:37:19.93ID:gqSz/09F
roswellについての質問なんですが

ros init ファイル名

としたときできるファイルの中身の

(progn ;;init forms
(ros:ensure-asdf)
;;#+quicklisp (ql:quickload '() :silent t)
)

って何ですか?
(ros:ensure-asdf)特にこれ

510デフォルトの名無しさん2018/11/17(土) 00:21:41.91ID:eQWBxdMf
>>509
そんな事俺に聞かれても知るわけないやろ頭おかしいんか?

511デフォルトの名無しさん2018/12/02(日) 12:23:45.12ID:KPiqRYEn
お前だれよ

512デフォルトの名無しさん2019/01/08(火) 13:36:34.22ID:n4V6aMpj
Common LispからC言語のモジュールを呼ぶ方法は簡単に見つかるのですが
C言語からCommon Lispプログラムを実行する方法が見つかりません。
GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか?

513デフォルトの名無しさん2019/01/08(火) 18:04:16.67ID:kGjsEUq7
>>512

ただ別プロセスで処理系を起こして、そこの repl で評価できればいい・・というだけなら、 fork と exec で済むかも。

CからLisp関数を直接呼んだり、C関数でLispオブジェクトを直接扱うとかするのは、がっつり処理系依存だけど出来ることは出来る。
たぶんこの目的なら ECL が一番簡単だと思う。それっぽい例もあるし:
https://gitlab.com/embeddable-common-lisp/ecl/tree/develop/examples/embed

SBCL や Allegro CL でも出来るみたいだけど、かなり大変。
というのも、C関数が動いてる間にLisp処理系のGCが走ると死ぬ・・とか諸々あるので。一応リンクだけ:
http://www.sbcl.org/manual/#Calling-Lisp-From-C
https://franz.com/support/documentation/10.1/doc/foreign-functions.htm#lisp-from-c-1

514デフォルトの名無しさん2019/01/13(日) 15:30:06.78ID:awaCdOlx
Lispでグラフィカルにステップ実行できる方法ってEmacsでSLIMEやるしかないですか?
LispのためだけにEmacs覚えるのは勘弁してほしいので
VimでSlimv入れてやってみましたがGDBのようなステップ実行しか出来ませんでした。

515デフォルトの名無しさん2019/01/15(火) 05:34:30.77ID:lhwbzmDt
>>514

「グラフィカルにステップ実行」が何をさすのかよく分からんが。
slime でも sldb で restart 選ぶ感じにはなっちゃうと思う。

https://lispcookbook.github.io/cl-cookbook/debugging.html#step
https://lisphub.jp/common-lisp/cookbook/index.cgi?SLIME%3ASLDB

5165142019/01/15(火) 10:41:56.87ID:EvpJOxTU
すみません、勘違いでした。
edebugのように現在実行している行がわかるステッパ?が利用したいのですが
edebug以外にないでしょうか?

517デフォルトの名無しさん2019/01/16(水) 01:39:36.94ID:Q19T/bZz
>>514

「グラフィカルにステップ実行」と言ったらVisualStudioみたいな感じかと思うけど。
LispじゃなくてSchemeでもいいならRacketはどう?(ダメだよね ;_;)
かなり昔にDrSchemeって名前だった頃にちょっと遊んでみただけだけど。

https://docs.racket-lang.org/drracket/debugger.html

518デフォルトの名無しさん2019/01/17(木) 06:22:05.82ID:W9irOPq+
Lispでドルマークって特別な意味ありますかね?正規表現とかナシで

519デフォルトの名無しさん2019/01/17(木) 15:24:46.14ID:XV1+qWbe
Land of Lisp、文字が小さくて読めない…(´;ω;`)

520デフォルトの名無しさん2019/01/17(木) 19:09:16.06ID:Y7dh6bUh
>>519
⊃ハズキルーペ

521デフォルトの名無しさん2019/01/18(金) 15:25:03.51ID:6FOWYZfc
>>518

standard-syntax なら $ は普通の文字。
standard-syntax での各文字の意味はここにある:
http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm#charsyntaxtypesinstdsyntax

readtable いじってたら分からない

522デフォルトの名無しさん2019/01/19(土) 14:06:18.02ID:xfMx41aW
だれかChocorateyにRoswell追加してクレメンス

523デフォルトの名無しさん2019/01/19(土) 23:31:04.73ID:xfMx41aW
Windows版Roswellでinstallコマンド出来ている方はいますか?
sbcl-binのような末尾にbinがついて、ビルドが不要なものはインストールできるのですが
それ以外だと、msys2の有無にかかわらず~/.roswell以下にmsys2がインストールされて
それが全くまともに動作せず何もインストールできません。

524デフォルトの名無しさん2019/01/20(日) 15:17:16.36ID:S2xiCEld
最近Lispを勉強し始めた超初心者です。
関数型言語も初めてです。

末尾再帰の最適化をするとコンパイラがループにしてくれるので効率がいい、の説明が腑に落ちません。
再帰は読むのも書くのもループより高コストだと思いますが、
その結果がループ並みに早くなる、では何のために再帰にするのかわかりません。

なにか他にメリットが有るのでしょうか。

525デフォルトの名無しさん2019/01/20(日) 15:44:22.07ID:wbmgJCyM
Common LispじゃなくてSchemeだけど、こんな説明はどうでしょう
http://practical-scheme.net/docs/tailcall-j.html

526はちみつ餃子 ◆8X2XSCHEME 2019/01/20(日) 21:45:08.14ID:/TyOXJfP
>>524
関数呼出しっていうのは、一般的なコンピュータの中でどのような
動作をするかというとその実態はジャンプとスタック操作でしかない。
再帰であろうとループであろうと中ではただジャンプしてるだけだよ。
(実際にはリソースの管理とかが一体化してるのでそう単純でもないんだけど。)

再帰というのがスタック操作をするループであると捉えるか、
ループというのがスタック操作を省略できる再帰であると捉えるのかは
別の側面から見ているというだけで同じことを言ってる。

どっちを軸するかという説明の仕方の違いってだけ。

527デフォルトの名無しさん2019/01/20(日) 23:30:23.13ID:m7XAF6Qj
>>524 が聞きたいのは、それを再帰として書くことの利点だと思う。

読み書きのコストは慣れの問題で、分野によっては再帰で書くほうが慣れてるんだよ。
関数型言語の界隈は数学寄りの人が多いんだけど、数学は再帰で書くことが多いんだ。

関数呼んでるだけだから、ループ用の特別な構文がいらないってのもある。
これはどっちかっていうと言語の規格とかそっち側の都合だけど。

528はちみつ餃子 ◆8X2XSCHEME 2019/01/21(月) 00:09:20.61ID:seIeK7lJ
あ〜、そっか。
Common Lisp 的にはそこまで積極的に何もかも (明示的に) 再帰で書くスタイルを推奨しているわけではないし、
ループ的に書く方が読みやすければそう書いてもいいんだが、
他の言語に比べれば再帰を理解している必要は有るので、
チュートリアルの類では過剰に再帰を推してる感じがするかも。

529デフォルトの名無しさん2019/01/21(月) 08:36:01.54ID:n4GEno5f
ループはiの様なループ変数が必要だけど、これは変数への破壊的代入または再代入になる
関数型プログラミングはそれを嫌う
末尾呼び出しの最適化を前提に書けば破壊的代入無しにループが書ける

530デフォルトの名無しさん2019/01/22(火) 03:37:24.22ID:rqabYXWq
526 にも書いてるけど、変数の破壊的代入と再帰と末尾呼び出しの最適化はそれぞれ別々のものだと思うけどね

(let ((i 10)
(closures nil))
(labels ((iter ()
(if (zerop i)
nil
(progn
(push (lambda () i) closures)
(decf i)
(iter)))))
(iter)
(mapcar #'funcall closures)))
⇒ (0 0 0 0 0 0 0 0 0 0)



(let ((i 10)
(closures nil))
(dotimes (i i)
(let ((i i))
(push (lambda () i) closures)))
(mapcar #'funcall closures))
⇒ (9 8 7 6 5 4 3 2 1 0)

531デフォルトの名無しさん2019/01/22(火) 18:44:06.81ID:61UMm30F
>>530
上と下が随分違うコードで比較して何が言いたいのかよく分からん…
上のコードは
(let ((i 10))
(labels ((iter (n closures)
(if (zerop n)
closures
(iter (1- n) (cons (lambda () i) closures)))))
(mapcar #'funcall (iter i nil))))
⇒ (10 10 10 10 10 10 10 10 10 10)
と書けば破壊的代入を避けてループが書ける
closuresも破壊的代入してたけど、Common Lispだと簡単にそういうコードを書いてしまう
結局破壊的代入無しにループ書くには再起呼び出しが必須と言うだけだ
再起呼び出しは簡単にスタックオーバーフローするから末尾呼び出しの最適化は前提でしょ

532デフォルトの名無しさん2019/01/23(水) 01:49:56.83ID:2DvRHl1Y
すげぇ歴史がある言語のわりに全然ドキュメントもライブラリもないっすね…

533デフォルトの名無しさん2019/01/23(水) 15:13:20.89ID:I7vJASel
Forthをdisるのはやめれ

534デフォルトの名無しさん2019/01/23(水) 16:46:55.68ID:HL71aJyT
ドキュメントがまだないのはまだ始ってないから。

もう少し待て。いつか必ずブームがくるから。

535デフォルトの名無しさん2019/01/23(水) 18:13:57.77ID:iEoy0Btk
lisp勉強中だが他言語しばらく触った後lispに戻ってくるとコード見るだけで笑えてくる

536デフォルトの名無しさん2019/01/23(水) 20:17:08.92ID:W71jjF2T
かっこかっこかっこかっこかっこばかり

537デフォルトの名無しさん2019/01/23(水) 21:36:19.03ID:OIIGbqIY
カッコいいね

538デフォルトの名無しさん2019/01/24(木) 10:47:39.00ID:TePOwsZ1
Juliaってかっこいいですか?

539デフォルトの名無しさん2019/01/24(木) 11:43:43.15ID:6qwP1ilP
カッコはともだち こわくないよ

540デフォルトの名無しさん2019/01/25(金) 14:34:14.18ID:07wWn8gG
Juliaって何かと思ったら新しい言語か
JuliaもそうだけどASTのレベルを構築出来るマクロをLisp-like macroって言うのは違うだろうと思う
Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな

541デフォルトの名無しさん2019/01/26(土) 01:26:25.34ID:bl37ikQs
> Lispのマクロはコードの見た目を変更するという至極単純で唯一無二のものだからな
って言うのは違うだろうと思う

542はちみつ餃子 ◆8X2XSCHEME 2019/01/26(土) 03:08:15.37ID:ixrTaENi
LISP 的なマクロというのは
「プログラムはリストであり、リスト操作によってプログラムを変形する」
と私は捉えているので、前提となる「プログラムはリスト」の部分がないと
やっぱりちょっと LISP 的とは言えないかな〜とは思う。

ただ、各言語の構文木の表現がリストと言えるかどうかはかなり微妙だし、
Scheme のように明らかに LISP 系の言語でもそのマクロ機構 (syntax-rules) がリスト操作
と呼べる範疇なのかどうかは人によって感覚が違うかもしれないというのもわかるので、
ふんわりと捉えてあげてもいいんじゃないかと。

543デフォルトの名無しさん2019/01/26(土) 11:11:15.46ID:yVAkGzul
TclはLisp的か

544デフォルトの名無しさん2019/01/26(土) 13:04:05.95ID:HhE3t8c5
nil

545デフォルトの名無しさん2019/01/29(火) 02:23:30.16ID:a0yta6qd
Lispってカッコだらけで視認性悪いのに何で最後に)))))って閉じるコーディングスタイルがスタンダードっぽいの?
(some
  (some
  )
)
こうやってネストと閉じカッコを対応させておけば閉じ忘れしにくくて視認性も良いと思うのだが

546デフォルトの名無しさん2019/01/29(火) 02:59:58.51ID:jbL5Y/0k
>>545
じゃあお前が広めれば?

547デフォルトの名無しさん2019/01/29(火) 13:01:27.96ID:yJ0I+sIY
Lisperはカッコを見ずにインデントを見る
カッコだけの行が有るとかえって分かりにくくなる
EmacsならRainbowDelemitter使うとカッコの輝度が下がって目障りでもなくなる

548デフォルトの名無しさん2019/01/29(火) 15:54:32.57ID:tEhI5kt3
slime の C-c C-] とか一気に全部かっこを閉じるコマンドを使うから、閉じ忘れとか気にしないなあ

549デフォルトの名無しさん2019/01/29(火) 16:25:08.69ID:e8yOd/P9
XMLのタグみたいなもんだな。XMLがそれを理由に廃れたことも含めて。

550デフォルトの名無しさん2019/01/29(火) 21:07:40.48ID:TIeo+FQH
>>547
> カッコだけの行が有るとかえって分かりにくくなる
完全にカッコ見とるやんw
カッコつけんなエアプw

551デフォルトの名無しさん2019/01/30(水) 12:44:23.33ID:eo/Tys4V
>>550
カッコだけの行が有るとインデントが分かりにくくなるという意味だが、わざわざ書かないと分からんか?

552デフォルトの名無しさん2019/01/30(水) 12:52:38.76ID:Lcj20AkF
エアプさん必死やねw

553デフォルトの名無しさん2019/01/30(水) 13:13:38.82ID:cw4gcsqU
(a))))
の部分のaだけ頻繁にコメントする時は不便に感じる

(a)
)))
にしていいよね?

554デフォルトの名無しさん2019/01/30(水) 13:46:07.35ID:jx8GGD5s
わかる。

(hoge
(fuga
(piyo))) ; ここにコメント書くと、式全体を閉じるということに書いてる気がする

(hoge
(fuga
(piyo) ; こう書くと、 (piyo) 式にだけコメント書いてる気がする
))

555デフォルトの名無しさん2019/01/30(水) 13:59:53.27ID:eo/Tys4V
>>553
Emacsだと(a)))で(a)だけ選択してM-;すると自動でカッコがよけて
(a)
))
になるから、そういう状況にはしょっちゅうなる

556デフォルトの名無しさん2019/01/30(水) 21:17:23.83ID:jAE5E/lv
C系の言語から来ると最初は閉じ括弧の行がないのが気になるかもしれないが
すぐ慣れてむしろ邪魔になるゾ
というか今どきのスクリプト言語みんなそうじゃないか

557デフォルトの名無しさん2019/01/31(木) 12:29:13.76ID:lgLgsaY3
かっこの話題になるとわらわら湧いてくる陸リスパーさん達w

558デフォルトの名無しさん2019/01/31(木) 15:46:41.09ID:aH0rCOCG
うby最強

559デフォルトの名無しさん2019/02/01(金) 01:45:52.05ID:pWouqX0G
海でLispするのが本物ってこと?

560デフォルトの名無しさん2019/02/01(金) 07:48:11.81ID:eMw5OSNU
>>559
なんや急に本物て?偽物の自覚でもあったんかおまえw

561デフォルトの名無しさん2019/02/01(金) 20:04:50.60ID:ZYD6dOWd
何んか湧いてますね

562デフォルトの名無しさん2019/02/02(土) 01:05:09.97ID:JTaE88Yv
にわか認定したい奴が沸いてんのかね
Lisperなんてカッコに嫌悪感がなければそんなに労せずなれると思うけどね

563デフォルトの名無しさん2019/02/02(土) 07:45:51.33ID:DNtrULkT
>>562
そのセリフはせめてリスパーになってから言ったらどおや?陸リスパーさんw

564デフォルトの名無しさん2019/02/02(土) 08:23:24.85ID:UAuMFjv9
陸リスパーの定義を述べよ。
リスパーの定義を述べよ。

565デフォルトの名無しさん2019/02/02(土) 09:51:20.74ID:BIkLOTfK
トランクに入れるとか

566デフォルトの名無しさん2019/02/02(土) 12:43:40.25ID:8UgzjBVu
り…陸リスパー

567デフォルトの名無しさん2019/02/02(土) 19:18:03.31ID:UAuMFjv9
おだろうね

568はちみつ餃子 ◆8X2XSCHEME 2019/02/02(土) 19:22:38.57ID:KkdP20n5
陸には「くが」という読みも有ります。

569デフォルトの名無しさん2019/02/02(土) 22:26:20.61ID:zdLK2rou
>>563
陸リスパーはリスパーじゃないらしいが、意味が分からんw
取り敢えず知能指数が75程度かね

570デフォルトの名無しさん2019/02/03(日) 11:47:11.28ID:o6ig8vkN
陸リスパーさん、案の定バカやったwww

571デフォルトの名無しさん2019/02/03(日) 11:59:09.21ID:6SxaUJ1h
ツマンネ

572デフォルトの名無しさん2019/03/20(水) 17:01:33.89ID:Cy24MG6x
も〜すぐ春ですね。

573デフォルトの名無しさん2019/06/15(土) 16:34:52.25ID:5WxVHbel
defmacroだとdestructuring bind?が使えて
(defmacro test ((a b &optional c) d)
(print (list a b c d))
nil)
(test (1 2) 4) => (1 2 NIL 4)
みたいに書けるけど、&optionalや&keyの後に書こうとしてもSBCLだとdefmacroを評価した時点でエラーになる
&restの後ろには一応書けるっぽい
必須引数と&restの所には書けるけど、&optionalと&keyの所には書けないという認識で良いのか?
もし&optionalの所に書けるなら書き方を教えてくれ

574デフォルトの名無しさん2019/06/23(日) 06:22:35.07ID:DFwOz3vJ
>>573
#:g1: ラムダリストでの複雑なパタンマッチ
https://g000001.cddddr.org/3770218746

575デフォルトの名無しさん2019/06/23(日) 17:17:52.99ID:MRp+xueZ
>>574
この記事見たらちゃんと書けることが分かった
自分が前に試した時は何か書き方を間違っていたようだ
取り敢えずモヤモヤが晴れたんで助かりました

576デフォルトの名無しさん2019/06/26(水) 20:14:20.90ID:Y3pTO8/n
コードを C や perl や Lisp や python に書き換えて速度比べていたんですが
perl に速度負けしたのは、ちゃんと Lisp 書けるようになれば逆転できますかね?
処理系は CCL Version 1.11.5/v1.11.5 (WindowsX8632)

perl に負けるのは悔しいんですよ

577デフォルトの名無しさん2019/06/26(水) 20:21:44.11ID:BI2PiUEB
>>576
sbcl使えば?

578デフォルトの名無しさん2019/06/26(水) 20:46:18.82ID:Y3pTO8/n
早い
まだリファクタリングしてないのにこの速さ
ありがとうございます。ここまで scbl が速いとは

0.331 C
0.616 scbl
0.749 perl
0.943 CCL
2.912 python

579デフォルトの名無しさん2019/06/27(木) 01:23:25.87ID:dlyc1cFh
CとPerlが2倍程度しか違わないとかどんなコードか気になる
普通二桁違ってもおかしくない

580デフォルトの名無しさん2019/06/27(木) 02:17:45.54ID:9Zxtgl6E
C malloc とか使えばもっと早くなりそう
https://paste.fedoraproject.org/paste/28GrwCXGgyRCKRMZYoZKWA

perl5 これは色々時間測って速度でるようにしてる
https://paste.fedoraproject.org/paste/ZcWy7fa2ca4BAO5INcSscw

581デフォルトの名無しさん2019/06/27(木) 14:46:57.17ID:0O4NWcuW
最適化コンパイルしているか疑問
もっと早くなる気がする

582デフォルトの名無しさん2019/06/27(木) 17:18:17.57ID:9Zxtgl6E
gcc でも gcc -Ofast -march=native でも
このコードは早さ変らなかった

Cをもっと早く走らせる書きかたはあると思う
しかしながら当面の目標は、Lispなどで
早く走るコードに仕上げることだ

583デフォルトの名無しさん2019/09/21(土) 00:38:07.12ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?

584デフォルトの名無しさん2019/09/21(土) 00:44:47.91ID:9d3EeJ1d
Emacs+Slimeで困ってないとかそういうのじゃなくて

585デフォルトの名無しさん2019/09/21(土) 01:59:38.19ID:vpc6CIH7
IDEを強調するならフリーなやつは存在しないんじゃない
有償ならLispWorksとかあるけど

586デフォルトの名無しさん2019/09/21(土) 02:01:25.30ID:vpc6CIH7
おそらくこんなのを求めてるんじゃないかな
http://www.lispworks.com/products/ide.html

587デフォルトの名無しさん2019/09/21(土) 17:00:18.69ID:9d3EeJ1d
squeakやpharoはフリーなのにLispはなんで誰もフリーで作らないの?

588デフォルトの名無しさん2019/09/21(土) 17:11:00.50ID:icgczTg/
君が造ろうと思わないなら同じ理由じゃね

589デフォルトの名無しさん2019/09/21(土) 18:42:03.48ID:9d3EeJ1d
じゃあ世界中のLispプログラマは丘リスパーなの?

590デフォルトの名無しさん2019/09/21(土) 21:39:21.04ID:1BHZJNXJ

591デフォルトの名無しさん2019/09/21(土) 22:14:36.53ID:mq5euZR6
だからEmacs+slimeで事足りてるって言ってんだろ
頭悪いの?

592デフォルトの名無しさん2019/09/21(土) 22:17:44.52ID:9d3EeJ1d
マジアスペなのか何かのギャグで言ってるのかわかんないよw
それはわかってるし、そんなことは訊いてないんですけどw

593デフォルトの名無しさん2019/09/22(日) 08:43:07.19ID:VSynpdi7
十分答えになっていると思うが?

594デフォルトの名無しさん2019/09/22(日) 13:10:38.79ID:y42gsAly
漏れには ID:9d3EeJ1d がアスペに観える

595デフォルトの名無しさん2019/09/22(日) 13:13:37.56ID:NWulzMwt
だよね

596デフォルトの名無しさん2019/09/23(月) 00:17:42.37ID:yOVeMM4I
質問はこれね、答えはyes/noしかありません
おk?

583 自分:デフォルトの名無しさん[] 投稿日:2019/09/21(土) 00:38:07.12 ID:xRjuzSxf
squeakやpharoみたいな完全フリーなIDEってないの?

584 自分:デフォルトの名無しさん[sage] 投稿日:2019/09/21(土) 00:44:47.91 ID:9d3EeJ1d [1/4]
Emacs+Slimeで困ってないとかそういうのじゃなくて

597デフォルトの名無しさん2019/09/23(月) 11:11:12.88ID:3qdqqJ07
64bitのときって引数6個まではスタック使わずにレジスタ渡しなんだな

598デフォルトの名無しさん2019/10/13(日) 19:14:39.59ID:5s4kkgRn
非LISPマシン(≒汎用CPU)上でのLISP処理系でCDRコーディングが流行らないのって何で?

599デフォルトの名無しさん2019/10/14(月) 00:04:21.63ID:MCqb83NJ
CDRコーディングはメモリを節約するためのものだけど、今時そんな事する必要がないからだろ

600デフォルトの名無しさん2019/10/14(月) 02:33:00.31ID:4dMEwq0N
結局早く走らせようとすると面倒なコードにしかならなかった思い出

601デフォルトの名無しさん2019/10/14(月) 22:36:05.59ID:4/RblZEa
CDRコーディングでメモリ参照の局所性などは向上するのでむしろ現代のCPUで効果があるという話もある
CommonLispの場合,リストはイミュータブルでないので書き換えが発生すると間接参照に置き換わるためどこまで旨味があるかだが

602デフォルトの名無しさん2019/10/15(火) 09:45:03.23ID:aaeMZMJi
たかがリストの参照に条件分岐が必要になるから、むしろ現代のCPUには速度的に致命的なペナルティが有る
Lispはリストの使い勝手が良いからつい何でも使い勝ちだけど、ある程度以上の可変長のデータには可変長配列を使うべきだろう

603デフォルトの名無しさん2019/10/18(金) 01:17:14.39ID:eIYWybUZ
先生質問です!モダーンな言語に慣れた身としては、括弧よりもシンボルが大文字なことが気になります!
SQLと一緒で、なんだか怒られているような、コードに怒りの感情がくっついているような感触がします!

604デフォルトの名無しさん2019/10/18(金) 03:05:27.14ID:YKg3bugE
クラス名とインスタンス名がどっちも先頭小文字文化で区別がつかないことや
カプセル化を事実上放棄していることについても触れてあげてね

605デフォルトの名無しさん2019/10/19(土) 00:39:53.49ID:X38Vw2Xm
>>603

質問ではない

606デフォルトの名無しさん2019/10/19(土) 04:41:27.18ID:VYVT60v2
>>603
知らず

607デフォルトの名無しさん2019/10/19(土) 14:30:27.83ID:1oXfIKcZ
>>604
カプセル化を放棄してるってどう言う事?
プライベート変数の事言ってるなら可能だろ

608デフォルトの名無しさん2019/10/26(土) 15:03:46.18ID:a/Ne+y1n
setf 万能な感じだけど
オブジェクトの外からsetfしたら書きかえられたり
なんてことはないよな?

609デフォルトの名無しさん2019/10/31(木) 19:55:25.18ID:IHVIFECG
cl4py で ~/.roswell/local-projects のパッケージ読む方法がわからないです
内部的には sbcl --script をpythonから実行しているので,
これと同じことを ros runでできれば良いはず

610デフォルトの名無しさん2019/11/04(月) 19:09:58.20ID:BHJXlzaa
~/.roswell/local-projects
~/.quicklisp/local-projects
~/quicklisp/local-projects

全部統一したい.おすすめの設定はありませんでしょうか?

611デフォルトの名無しさん2019/11/05(火) 15:20:02.48ID:mbkTm92O
ln -s

612デフォルトの名無しさん2019/11/14(木) 08:00:53.12ID:XNLPU+DY
Dex:get でURL エンコードは自分で変換するしかないのでしょうか
http postでHmacなる暗号化かけてpostする方法がわかりまでん

613デフォルトの名無しさん2019/11/14(木) 16:41:31.82ID:ot2dc8Ah
https://quickref.common-lisp.net/index-per-library.html
ここに沢山あるパッケージは,名前から中身を類推するしかないの?
このパッケージはテキスト処理で,数値計算でみたいなカテゴリー分類が見たい

614デフォルトの名無しさん2019/11/15(金) 02:07:03.14ID:SpeXmILA
site:https://quickref.common-lisp.net machine learning
とかでぐぐれば?

615デフォルトの名無しさん2019/11/15(金) 12:40:19.71ID:6WelP7wf
https://github.com/mmaul/clml これ凄いですね

616デフォルトの名無しさん2019/11/15(金) 13:23:21.62ID:76R0IrhI
あなる

617デフォルトの名無しさん2019/11/15(金) 22:00:06.65ID:EU/v6jRR
実践CLが適価で出ていたので次に読もうということでポチりました
それを引き取りに行きましたところ
ふらーっと棚を見たらPAIPとLOLとガウディ本が適価で置いてありやがりまして
全部いっちゃいました><
まだGentle Guideの最初の方読んでるところだとういうのに…どうすんだこれ

618デフォルトの名無しさん2019/11/16(土) 00:03:26.10ID:ITuC7LSd
>>617
Lispマスターになったら言ってくれ

619デフォルトの名無しさん2019/11/16(土) 00:04:46.81ID:ITuC7LSd
Lispを極めた者だけが見えるものが有るという…

620デフォルトの名無しさん2019/11/16(土) 00:22:31.74ID:BwABWAGp
>>618
とりあえずこの順にこなしていくつもりだけど何年かかるかな・・・
https://gist.github.com/y2q-actionman/49d7587912b2786eb68643afde6ca192

621デフォルトの名無しさん2019/11/16(土) 00:45:08.22ID:ITuC7LSd
>>620
なんだこれw
こんなものが有ったのか
これを最後までこなせばマジでLispマスターかもな
知らんけどw

622デフォルトの名無しさん2019/11/17(日) 00:11:27.35ID:Rg5NJh7n
オレがLispマスターになるために、誰かHyperspecを読みやすい日本語に翻訳してくれませんか

623デフォルトの名無しさん2019/11/17(日) 09:59:42.64ID:X9AhIAwA
はじめてなら先に Erlang やれ
Elixir じゃなくて Erlang な

624デフォルトの名無しさん2019/11/17(日) 18:58:25.57ID:8cMlcBXZ
>>623
わかりました!
CLispやります

625デフォルトの名無しさん2019/11/17(日) 19:53:03.62ID:uNVU1LmK
そういうわけでGNUのEmacs Lispプログラミング入門読み始めたのだ

626デフォルトの名無しさん2019/11/23(土) 12:12:31.12ID:9GE+Zi9m
>>601
基本はイミュータブルって事にしておいて、書き換えなきゃならなくなった時は
都度ミュータブルに変更(≒実際にはミュータブルに見える)とかは無し?

6276262019/11/23(土) 12:16:52.71ID:9GE+Zi9m
コピーオンライトっていうもっと簡単な用語があった
orz

628デフォルトの名無しさん2019/12/28(土) 16:35:07.94ID:zdKgsTQK
ここでMaximaの話したら駄目?

629デフォルトの名無しさん2019/12/28(土) 16:58:47.35ID:i/tVhKl3
クソ虫ペダルの話題は他でやって

630デフォルトの名無しさん2020/01/19(日) 21:09:24.20ID:e1ukXRkq
保守

631デフォルトの名無しさん2020/02/13(木) 16:16:45.93ID:Zcn6rtH0
quicklispの動作確認のためのhollow worldしかない単純なパッケージってないのでしょうか?

632デフォルトの名無しさん2020/02/15(土) 21:48:04.96ID:reYL48Kc
>>587
smalltalkは良くも悪くもIDE込みの言語だからな。

633デフォルトの名無しさん2020/02/20(木) 15:29:37.90ID:TfLGY2HC
>>631
「動作確認」が何を意味するのか微妙だけど・・
Quicklisp client が入っているかどうかだけなら、REPL で

(ql:client-version)

とか打って "2019-02-16" とか返ってくるのかを見ればよさそう。

634デフォルトの名無しさん2020/02/23(日) 16:33:42.33ID:rMYt9Lfm
Pattern matchで一番使われているのはoptimaなんです?
速度なくて良いので、もっと実装が単純なの探してます


それからquicklispにonlispのコードまとまってるパッケージないですか

635デフォルトの名無しさん2020/02/23(日) 18:30:00.29ID:ZlpvVH2U
実装が単純ってのを基準にライブラリ選定するやついるか?
quicklispに教材は集積されてないんじゃないの.知らんけど

636デフォルトの名無しさん2020/02/23(日) 19:56:19.38ID:buSGB+sr
コモンリスプの最初の教科書として『これがLispだ』を読み始めた
最初の方で、読み進むためのツールとして「pp」というマクロが紹介されてるんだけど
SBCLで動かなくて困ってます
2バージョン紹介されてるんだけど、どこをどうしたら動きますか?

CL-USER> (defmacro pp (fun)
(list 'pprint
(list 'quote (append (list 'defun fun)
(cdr (symbol-function fun))))))
CL-USER> (defmacro pp (fun)
(list 'quote (list 'defun fun
(cadr (symbol-function fun))
(caddr (caddr (symbol-function fun))))))

ワーニングのメッセージもコピペしたほうが良いですか?

637デフォルトの名無しさん2020/02/23(日) 23:12:17.71ID:pcZQVic1
on lispのコードはポール・グレアムのサイトから落とせるよ

638デフォルトの名無しさん2020/02/24(月) 00:14:28.43ID:ADNywXxE
Macro expandの結果がslimeだと
#1=
みたいのなくて、全部代入されて展開されるのに
コマンドラインからだと、ところどころ出てくる

この代入みたいなの出てこないような設定出来ないのでしょうか

639デフォルトの名無しさん2020/02/25(火) 02:41:22.28ID:7uXswvK3
>>636
ここを
(symbol-function fun)
こうすると動きます
(function-lambda-expression (symbol-function fun))

640デフォルトの名無しさん2020/02/25(火) 11:57:12.46ID:8lWyfop6
>>638

*print-circle* を nil にするといいはず
(setf *print-circle* nil)

641デフォルトの名無しさん2020/02/25(火) 21:44:40.33ID:EXaHk6FB
>>639
ありがとうございます!

642デフォルトの名無しさん2020/02/26(水) 15:29:30.05ID:DHrVhTjk
…動いたは動いたけど、目的の動作ではないような…
関数定義のプリティプリントをするマクロなんですが…

643デフォルトの名無しさん2020/02/26(水) 22:35:08.55ID:hFQlDZVm
>>642
残念ながら、必ずしも function-lambda-expression で「関数定義」を得られるとは限りません。
nil を返す場合もあると言語仕様で定められています:

> The primary value, lambda-expression, is function's defining lambda expression, or nil if the information is not available.
http://www.lispworks.com/documentation/HyperSpec/Body/f_fn_lam.htm

SBCLの場合、ユーザー定義関数なら期待する結果になるようですが、
組込関数に対しては nil を返す実装がほとんどのようです(手元の処理系はすべて nil を返してきました)。

644デフォルトの名無しさん2020/03/03(火) 21:49:43.84ID:JAknlLuJ
clhsの読み方がわかんないんだけどpprintは代用にならないのかな

645デフォルトの名無しさん2020/03/05(木) 03:14:59.23ID:2Ey3ZIKM
httpクライアントはdexが一番メジャーなの?

646デフォルトの名無しさん2020/03/05(木) 21:05:07.28ID:h922Dn8C
>>529
ループで書くと変数への再代入が必要になるから〜
って関数型言語推しの文脈でよく言うけど
それが言うほど問題になる場面ってどれ位あるかね?

それにRubyのeachとかイテレータだと
ループ変数は隠蔽されててあまり使わないし
ますますそんな実害はない気がしてくる

647デフォルトの名無しさん2020/03/05(木) 21:08:11.89ID:h922Dn8C
>>542
Lispのプログラム自体もリストでしかないから
処理とデータの区別が必要なくて
メタプログラミングがしやすいって理屈は分かってる

問題はメタプロの生産性が本当にメチャクチャ高いかどうか?
Lisp信者(というか教祖の)ポールグレアムとかはそう言ってるけど
ライブラリやドキュメントの充実の方が生産性上げる気がしてる

648デフォルトの名無しさん2020/03/05(木) 21:09:30.43ID:h922Dn8C
>>545
そうすると行数が増えるのがイヤなんだろうと思う
最後にカッコが重なるのはオレもイヤだが

649デフォルトの名無しさん2020/03/05(木) 21:12:16.28ID:h922Dn8C
>>576
今どきもう処理速度より
人間が読み書きする速度の方が重要だろ?
でそれはPythonの方が早そうな気がするけど

650デフォルトの名無しさん2020/03/05(木) 21:14:22.56ID:h922Dn8C
>>583
>>587
Emacsってフリーソフトの草分けじゃん?
エディタだけどIDEに近いんじゃないの?
欲しい機能はLispで自力実装するになるけど

651デフォルトの名無しさん2020/03/05(木) 21:16:29.03ID:h922Dn8C
>>603
個人的にはOOPやろうとすると
A.bにならないことが気になるわ

652デフォルトの名無しさん2020/03/05(木) 21:18:07.40ID:h922Dn8C
>>632
SmalltalkはあのIDEを使うために
言語も学ぶみたいな感じだからな

653デフォルトの名無しさん2020/03/05(木) 23:47:34.83ID:5jJ4qXDk
>>647

> ライブラリやドキュメントの充実の方が生産性上げる気がしてる

ドンキ行けばなんでも売ってるから買えば済むけどそれは生産性高いのか
ドキュメントの充実とかいうのも所詮Qiitaにコピペできる手順が書いてあるかどうかだろ

> 問題はメタプロの生産性が本当にメチャクチャ高いかどうか?

最近のわかりやすい事例でいうとライブラリやドキュメントが充実してないような量子コンピューティングでlisp使われてるわな
d-waveやrigetti
ゼロスタートでの生産性高いから採用されてんじゃないの
昔からlispはそういうところで使われてきたんだよな

654デフォルトの名無しさん2020/03/07(土) 03:25:56.46ID:XQNdi0wU
(list 1 2 3) = '( 1 2 3) ?

655デフォルトの名無しさん2020/03/07(土) 08:36:38.96ID:meF2wfp3
>>653
>ドンキ行けばなんでも売ってるから
>買えば済むけどそれは生産性高いのか

どうでもいいけど
PHPってドンキみたいな雰囲気だよな

656デフォルトの名無しさん2020/03/07(土) 14:34:31.81ID:z1zbB2pR
>>654
=の意味による。

657デフォルトの名無しさん2020/03/11(水) 22:30:07.23ID:XKsESyyO
>>656
?の意味わ?

658デフォルトの名無しさん2020/03/17(火) 18:02:01.30ID:StMMVjQO
実践common lispの古本買ったのですが
LispBox落としてきて本に載ってるEmacs?Slime?わかんないけどショートカットキー試したら
ほとんど通らなくて絶望してる

前の持ち主はそこまででこの本捨てたみたい
(ここまではラインマーカーあり、手あと付きまくりで汚れてる
水滴の落ちた跡があるけど、泣いたのかもしれない)

659デフォルトの名無しさん2020/03/17(火) 18:21:44.91ID:XIub247n
なるほど
C言語の本でもポインタの説明が間違ってて詰むパターンか

660デフォルトの名無しさん2020/03/17(火) 18:38:29.75ID:y139aNvj
かわいそうに
K&R本も難読で苦労した人も多かろう

661デフォルトの名無しさん2020/03/17(火) 21:41:37.12ID:v8kclrng
ポインタの話を出して「それに比べたらお前の絶望なんて大したこと無い」ってか
Cはドメジャー言語、Lispはマイナー言語だぞ

662デフォルトの名無しさん2020/03/17(火) 21:59:51.74ID:lqRJWXI0
実践common lispってそんなHow To本だったっけ?pathnameのはなしをよんでうげっとなったような記憶が。

663◆QZaw55cn4c 2020/03/17(火) 21:59:55.51ID:1bTOUrPD
>>661
lisp はマイナーなんかじゃなく、神話ですよ

664デフォルトの名無しさん2020/03/17(火) 22:03:05.74ID:v8kclrng
読者も書籍も少ないという意味では同じ意味だろアスペ野郎

665デフォルトの名無しさん2020/03/17(火) 23:19:20.47ID:lLOB6fa+
lisp初心者とプログラミング初心者のどっちなんだってやつ多いよな
pythonおすすめ

666デフォルトの名無しさん2020/03/18(水) 07:25:29.43ID:HGjE4cJ6
冒頭Emacsの使い方から書いてある、環境も提供してる
hello worldから書いてある
プログラミング初心者が手を出しても全くおかしくない本だと思うけどね

667デフォルトの名無しさん2020/03/18(水) 08:27:48.33ID:e34uYQaF
LispBoxですが

カッコ全閉じ C-c C-q → undefined
関数コンパイル C-c C-c → [Condition of type SIMPLE-ERROR]
→戻るとリターンで評価が効かなくなってる
関数コンパイル M-x slime-compile-defun → 通る

どうすれば?

668デフォルトの名無しさん2020/03/18(水) 10:11:26.98ID:i4GVxo4Z
>>666
全くの初心者でも無いです
大学ではEmacsでレポートを書いていたし、Schemeの本も読みました
再帰は多少慣れています

669デフォルトの名無しさん2020/03/18(水) 11:01:54.67ID:YWqpfRsi
>>667
C-c C-c で slime-compile-defun は lisp-mode での割り当てです。
*slime-repl* バッファでは slime-interrupt が C-c C-c に割り当てられています。

C-c C-q は大分前になくなったようです。
今はカッコ全閉じは C-c C-]
これも lisp-mode での割り当てで、*slime-repl* バッファでは使えません。
もちろん設定すれば別ですが:

;; SLIMEのREPLバッファでも C-c C-] でカッコ全閉じ
(eval-after-load "slime-repl"
`(define-key slime-repl-mode-map (kbd "C-c C-]")
#'slime-close-all-parens-in-sexp))

670デフォルトの名無しさん2020/03/18(水) 11:04:51.07ID:YWqpfRsi
なおREPLでは Ctrl+Enter で「カッコ全閉じして評価」ができます:

CL-USER> (list(list(list ;ここで Ctrl+Enter すると

CL-USER> (list(list(list)))
((NIL))
CL-USER>

671デフォルトの名無しさん2020/03/18(水) 11:32:38.80ID:i4GVxo4Z
>>669
ありがとうございます!
LispBoxが古いせいなのか、C-c C-cが未定義なんですよね
C-c C-]も未定義と叱られます
>>670は通って全閉じしてエンターしてくれます

Emacs 23.2.1です
ここから貰ってきたものです
https://common-lisp.net/project/lispbox/

672デフォルトの名無しさん2020/03/18(水) 11:39:38.76ID:i4GVxo4Z
Lisp Cabinetも入れててこっちはslime2009-10-15でちょっと古いのか
*slime-repl sbcl*でC-c C-]が未定義と言われます

673デフォルトの名無しさん2020/03/18(水) 13:08:33.20ID:c+xBBuM1
>>672

>>669 の言う通り、 *slime-repl sbcl* では C-c C-] は定義されておらず、使いたければ 669 と同じ手当てがいる。

SLIME 2.24 (May 2019) でも slime-repl には C-c C-] は定義されていないみたい。
.lisp ファイルを開いた時の slime-mode には定義されてるけど。

674デフォルトの名無しさん2020/03/18(水) 14:08:10.88ID:YWqpfRsi
>>669の「設定」はいったん忘れてください。
lispboxはemacsのユーザー設定を読込むようになっていないので意味のない提案でした。

とにかく、拡張子が .lisp のファイルを作ってそこで試してみて。
そこでなら C-c C-] も C-c C-c も使えるはずです。

675デフォルトの名無しさん2020/03/19(木) 01:34:16.75ID:kzb4sQto
閉じ括弧は自動入力に頼るべきだし、実際閉じ括弧を入力する事は皆無だ

676デフォルトの名無しさん2020/03/20(金) 18:05:58.17ID:X6A/hsgw
実践common lispは序章に common lisp に興味があるすべての人に向けたもの とは書いてあるがプログラミング初心者にも向くとは書いてない
python,java 他の言語と比較した解説が多い
ターゲットは lisp に興味のあるプログラマだろ

677デフォルトの名無しさん2020/03/20(金) 21:06:17.87ID:VDRHLCp0
だからって前提としてる環境で通らない事を書いてたら読者可哀相ではある

678デフォルトの名無しさん2020/03/21(土) 07:40:12.04ID:5WNgmSYJ
実践は少なくとも10年前は本の通りそのまま動いたよ
前提としてる環境は2005年の環境な
翻訳は2008年らしいがとっくに絶版らしい

lispboxの代替品はいまならportacleだろうな https://portacle.github.io

679デフォルトの名無しさん2020/03/21(土) 11:22:04.72ID:lNZ58Hb9
32bitのwin7ですのや…

680デフォルトの名無しさん2020/03/21(土) 11:41:58.56ID:fW5UJNuz
サバイバルなんとかって同人誌には導入の方法とか書いてないの?

681デフォルトの名無しさん2020/03/21(土) 18:21:48.79ID:lNZ58Hb9
HDD買ってきてlinux入れるしかないかなぁ
どうせならlibreboot化してみっかなCL関係ないけど

682デフォルトの名無しさん2020/03/23(月) 13:01:38.12ID:Anw2hEtg
Portacle 解説スライドとかあるのか
https://www.slideshare.net/masatoi0/portacle-common-lisp

683デフォルトの名無しさん2020/03/24(火) 21:26:46.71ID:G3YLWB5X
Lispworks買えばいいと思うよ。

684デフォルトの名無しさん2020/03/25(水) 01:50:52.61ID:/V276iPY
幾らぐらいするの?3万までなら考える

685デフォルトの名無しさん2020/03/25(水) 04:44:13.07ID:LMRkqywH
年間ライセンスで$1500から

686デフォルトの名無しさん2020/03/25(水) 04:45:11.18ID:LMRkqywH
64bit版は$3000からだったわ

687デフォルトの名無しさん2020/03/25(水) 09:45:21.75ID:L/38DGRQ
ハイパースペックの日本語版が付いてたら考える

688デフォルトの名無しさん2020/03/25(水) 22:37:29.70ID:SRZi3lVq
嘘書くなよ‥
ホビー向けlispworksは 64ビット版 750$ 32ビット版 500$
http://www.lispworks.com/buy/prices-1h.html


lud20200802114230
このスレへの固定リンク: http://5chb.net/r/tech/1411307361/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【入門】Common Lisp その11【質問よろず】YouTube動画>1本 ->画像>3枚 」を見た人も見ています:
Excel Python 質問スレ
【質問攻め】女が性を語るスレ221【仮面の告白】©bbspink.com ->画像>9枚
【MACRO】Google Apps Script 質問スレ【DRIVE】
【吉原】石榴を語る 16 ©bbspink.com ->動画>1本
【新宿】Mヤプー10 ©bbspink.com ->動画>2本->画像>19枚
【PC】デッドオアアライブ5LR MOD質問スレ1 ©bbspink.com ->動画>4本->画像>202枚
【うp質問禁止】 漫画の作者・作品名 質問スレ 39 ©bbspink.com ->動画>2本->画像>9枚
【上の口】交互に挿入【下の口】 ©bbspink.com ->動画>18本
/ ´,_ゝ`\初心者のための富士山登山入門155m【新春special】 ->動画>2本->画像>22枚
【川崎TG】琥珀 part46©bbspink.com ->画像>19枚
man co
monospaceでHP【2】->動画>1本
Windows フリソ質問スレ【情弱専用】
質問
質問 ->動画>2本->画像>16枚
【入門】Common Lisp その9【質問よろず】
javascriptで質問
【Circletempo】MYTH
【PC】Fallout: New Vegas質問スレ 15 ->動画>1本->画像>31枚
iPad mini【購入者専用】part6->動画>2本->画像>10枚
【抑圧】自由を奪われた女の子 2©bbspink.com ->画像>688枚
【うp質問禁止】 漫画の作者・作品名 質問スレ 49 [無断転載禁止]©bbspink.com ->画像>19枚
【Switch】Splatoon2/スプラトゥーン2 S帯スレ16【質問/雑談/愚痴】 ->動画>8本->画像>62枚
【非18禁】一般誌のエロ漫画スレ3 ©bbspink.com ->画像>729枚
【DMM.R18】御姫の翼 Part1 ©bbspink.com ->画像>16枚
【HoI4】 Hearts of Iron 4 質問スレ14 ->動画>2本->画像>155枚
【RQ】市原彩花 Part1©bbspink.com ->動画>2本->画像>192枚
Divx to DVDの質問
【田】Windows10 Part121
【田】Windows10 Part114->動画>4本->画像>38枚
Block fm【Taku Takahashi】->動画>6本
■ エロ画像やエロ動画の質問スレ 3 ■©bbspink.com ->動画>23本->画像>417枚
男の娘スレ 【ワッチョイp53入り】 [無断転載禁止]©bbspink.com ->動画>2本->画像>505枚
【海外専門】外国の有名人の熟女について語ろう [無断転載禁止]©bbspink.com ->動画>13本->画像>12枚
Expressionの話をしよう part6 【Acrylic】->動画>18本->画像>11枚
【高すぎる軽自動車 それなら普通車?!】軽の新車買う予算150万円あるなら格上中古車!!★2
エロゲソング総合・雑談【歌・曲・音楽】(in葱板)その19 [無断転載禁止]©bbspink.com
【恋愛】「ぽっちゃり女子」時代到来!痩せた妻より太めの妻と結婚した夫のほうが“10倍幸せ”になる研究結果 そのメリットとは[02/16] [無断転載禁止]©bbspink.com
【素人熟女】エロ画像をどんどん集めろ!その146 [無断転載禁止]©bbspink.com
熟女ママ(既婚)よ質問あるかしら?©bbspink.com
【素人熟女】エロ画像をどんどん集めろ!その154 [無断転載禁止]©bbspink.com
【素人熟女】エロ画像どんどん集めろ!その143 [無断転載禁止]©bbspink.com
【薄墓を作るよいつまでも】糞みそまん麹のSSを皆で考える【屑ヒモ山本ゴミぴろし】
【熟女】エロ画像拾いゲスの修正その108【数枚】 [無断転載禁止]©bbspink.com
【素人熟女】エロゲス画像どんどん集めろ!その121 [無断転載禁止]©bbspink.com
★川崎角海老&三浦屋 その17★ [無断転載禁止]©bbspink.com
★川崎角海老&三浦屋 その18★ [無断転載禁止]©bbspink.com
【吉原】ピンポン その20【格安】 [無断転載禁止]©bbspink.com
【吉原】クラブオアシス その33【NG自慢禁止】 [無断転載禁止]©bbspink.com
吉原】クラブオアシス その25【NG自慢禁止】 ©bbspink.com
気持ちよさそうに感じている女の子スレ【絶頂】 [無断転載禁止]©bbspink.com
【SODクリエイト】SOD女子社員 総務部入社1年目 奥原莉乃 笑顔と腕まくりがトレードマーク!どの職場にもいそうな「身近カワイイ」新卒娘、社内で恥...【デビュー作品/単体作品】 [無断転載禁止]©bbspink.com
【素人熟女】エロゲス画像どんどん集めろ!その111 [無断転載禁止]©bbspink.com
【熟女】エロクズ画像どんどん集めろ!その111 [無断転載禁止]©bbspink.com
【素人熟女】エロ画像をどんどん集めろ!その153 [無断転載禁止]©bbspink.com
【素人熟女】エロゲス画像どんどん集めろ!その114 [無断転載禁止]©bbspink.com
【素人熟女】エロゲス画像どんどん集めろ!その112 [無断転載禁止]©bbspink.com
【画像】シーメール大好き その2【動画】 ©bbspink.com
【素人熟女】エロ画像をどんどん集めろ!その152 [無断転載禁止]©bbspink.com
【アニメを騙る かんなぎ監督】糞みそまん麹のSSを皆で考える【山本ゴミ屑ひろし】
【身体】「そんな奥まで入れないとダメなんですか!?」 美尻グラドル・吉野七宝実があの『肛筋トレーニング』を体験![02/08] [無断転載禁止]©bbspink.com
【熟女】エロ画像どんどん集めろ!その97【逮捕】 [無断転載禁止]©bbspink.com
【熟女】エロ画像どんどん集めろ!その76【老女】 ©bbspink.com
身近な熟女をおかずにしてる奴【その@】 [無断転載禁止]©bbspink.com
【熟女】エロ画像どんどん集めろ!その95【通報】 [無断転載禁止]©bbspink.com
【熟女】エロ画像どんどん集めろ!その93【女熟】 [無断転載禁止]©bbspink.com
10:55:56 up 31 days, 21:20, 0 users, load average: 9.61, 9.30, 9.15

in 0.012621879577637 sec @0.012621879577637@0b7 on 011300