【入門】Common Lisp その11【質問よろず】
- 1 :デフォルトの名無しさん:2014/09/21(日) 22:49:21.73 ID: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.66 ID:NoTzw7Td
- 保守っとけ
- 3 :デフォルトの名無しさん:2014/09/24(水) 05:53:21.05 ID:jMNIys3U
- 僕のチンポの保守もして欲しいです
- 4 :デフォルトの名無しさん:2014/09/27(土) 22:11:12.38 ID:MwPKYdSn
- CommonLispってもういらない子なの?
- 5 :デフォルトの名無しさん:2014/09/27(土) 22:16:56.38 ID:XRggRDkd
- 少なくとも俺はいる
- 6 :デフォルトの名無しさん:2014/09/28(日) 01:52:26.39 ID:ukluat85
- もういらない子だと言われ続けて数十年
- 7 :デフォルトの名無しさん:2014/09/28(日) 10:02:46.51 ID:3fm9b2hk
- CommonLispは無くなっても困らないけどs式使う言語が否定される訳じゃ無いからなー
GUIとかI/Oもちっと近代的に再定義できないもんかの>>CommonLisp
- 8 :デフォルトの名無しさん:2014/09/28(日) 11:36:29.40 ID:VPEqHLDK
- なんでClojureはdoted pairなくしたんやろ
Symolic expressionはlinked cellが実体やないのか?
おかげでcar,cdrもないらしいやないか
それでもリスプの仲間かい!
レイプの間違いやないか?
エロいのうClojure
- 9 :デフォルトの名無しさん:2014/09/28(日) 11:50:37.01 ID: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.38 ID:3fm9b2hk
- >>8
Clojureはcons cellのあり方を変えてもLisp族であれると明確にしたんじゃないの?
実際Lispのdot pairってClojureでvector で2値持つのと何所が違うの?
- 11 :デフォルトの名無しさん:2014/09/28(日) 12:36:35.15 ID:iDFl5dY4
- >>10
ワシにきくな!
- 12 :デフォルトの名無しさん:2014/09/28(日) 12:37:33.56 ID:3fm9b2hk
- >>11
えー?
なんでわし怒鳴られてんのん?
- 13 :デフォルトの名無しさん:2014/09/28(日) 12:50:00.26 ID:iDFl5dY4
- >>12
エヘヘ
- 14 :デフォルトの名無しさん:2014/09/29(月) 15:39:11.02 ID:EGBsxWNV
- lispworks欲しい
実際emacs slime sbclとどれくらい違うんだろ
- 15 :デフォルトの名無しさん:2014/09/29(月) 15:46:20.10 ID:3Y1KoBbC
- >>14
GUI使わないならLispWorksもEmacs+Slimeですよ。
ちなみにGUIつかうならフランツ買うべき
- 16 :デフォルトの名無しさん:2014/09/29(月) 16:43:54.70 ID:GUILLi5F
- > GUI使わないならLispWorksもEmacs+Slimeですよ。
GUI使うよ
> ちなみにGUIつかうならフランツ買うべき
なんで?
- 17 :デフォルトの名無しさん:2014/09/29(月) 17:11:50.09 ID:3Y1KoBbC
- >>16
とりあえずGUIで日本語使わないならLispWorksでも大丈夫だけど、GUI使うときに付属のエディタが多バイト文字対応してない>>LispWorks
Franzはそのあたり問題ないのとGUIのユーティリティーが凄い良くできてる。
でもお金無いのでFranzは評価版だけしか使ってないけどな!
エディタさえなんとかなるならLispWorks好きなんだけどな!
- 18 :デフォルトの名無しさん:2014/09/29(月) 17:22:08.25 ID:hqUDBNsI
- lispworks6からUTF-8で表示で崩れもなく表示もできるし入力もできるよ.
common graphicsよりcapiの方が評判良いと思うけど.
lispworks7からjvmと連携するらしいよ.
- 19 :デフォルトの名無しさん:2014/09/29(月) 17:22:59.09 ID:GUILLi5F
- やっぱり日本語がネックか
とりあえずfreeのacl使ってみる
- 20 :デフォルトの名無しさん:2014/09/29(月) 17:23:29.98 ID:GUILLi5F
- lispworks買うことも視野に入れてみる
- 21 :デフォルトの名無しさん:2014/09/29(月) 18:42:06.20 ID:3Y1KoBbC
- >>18
マジか!
マジならアップグレードするか
#という事を続けてAllegro購入とかわらんくらい突っ込んでるのがなっとくいかねー
- 22 :デフォルトの名無しさん:2014/09/29(月) 18:43:04.57 ID:3Y1KoBbC
- >>18
jvm連携するくらいならClojreのIDEになってほしい orz
- 23 :デフォルトの名無しさん:2014/09/30(火) 19:30:43.62 ID:ReFtgmj2
- Schemeに比べてCommon Lispの利点て何?
- 24 :デフォルトの名無しさん:2014/09/30(火) 20:23:52.47 ID:VWdpfwoz
- ベタベタな手続き型プログラミングがいとも簡単にできるところじゃね?
- 25 :デフォルトの名無しさん:2014/09/30(火) 20:30:05.69 ID:lfWI1YhR
- 俺でも使えるコモンリスプってかあ
- 26 :デフォルトの名無しさん:2014/09/30(火) 20:50:58.25 ID:Q/T7bifx
- 偽と空リストが分かれてないとかnilのcar,cdrはnilとかそういうところは地味だけど
マクロ定義とかでリスト操作するときに便利
- 27 :デフォルトの名無しさん:2014/09/30(火) 20:53:38.82 ID:Q/T7bifx
- あとバリバリに最適化してC並の性能に出来るところも気持ちいい
- 28 :デフォルトの名無しさん:2014/10/01(水) 01:31:35.21 ID:ewrKIyW0
- なるほど
名前空間が分かれているところは利点?
- 29 :デフォルトの名無しさん:2014/10/01(水) 14:35:45.12 ID:aT3WVKIZ
- Common LispがLisp-2であることは、俺にとっては実用上便利だが、
そうは思わない人たちもたくさんいるだろう。
- 30 :デフォルトの名無しさん:2014/10/01(水) 14:38:33.54 ID:pim40rLx
- let over lambdaではちょくちょくageてた
- 31 :デフォルトの名無しさん:2014/10/02(木) 19:33:45.19 ID:Qypu3DYD
- common lispって柔軟だけどかゆい所に手が届かない所が多いね
大抵はalexandriaとかkmrclとかcl-ppcreとかsplit-sequenceとか使えばなんとかなるけど
ライブラリが散らばるのが気になる
alexandriaとかkmrclをベースに自分だけが使う一つの巨大なライブラリを作って足りない部分を追加していく方がいいのかな
- 32 :デフォルトの名無しさん:2014/10/06(月) 01:52:15.38 ID:6XAAReg7
- 名前空間みたいに、分けられる概念は分けるのが正義。Scheme はたぶん間違っている。
その意味では CL も副作用を分けなかったのは失敗だった。
- 33 :デフォルトの名無しさん:2014/10/06(月) 02:40:17.27 ID:wbFS47kT
- 目が腐った
- 34 :デフォルトの名無しさん:2014/10/07(火) 00:42:24.02 ID:1sqcCb/K
- プログラム書いるとオレオレマクロとかオレオレ関数ができてくると思うんだけど、みんなこれどこに置いてるの
- 35 :デフォルトの名無しさん:2014/10/07(火) 00:45:00.37 ID:nz5dcB15
- sbclでコンパイルに数秒かかってて
(incf v)
(incf v)
...
をn回繰り返す式を
を(incf v n)にしたらコンパイルが一瞬で終わるようになった
最適化すごい
- 36 :デフォルトの名無しさん:2014/10/07(火) 00:46:27.10 ID:nz5dcB15
- 最初は今書いてるプログラムソースと同じディレクトリに置いて間を見計らって
~/.sbcl/の中に置いて起動時にloadするようにしてる
- 37 :デフォルトの名無しさん:2014/10/07(火) 02:44:00.62 ID:OarL+A4W
- >>34
1. オレオレだと思っていてもalexandriaの中を探すと大抵のものはある.それを使う.
2. なければ,オレオレライブラリでもasdfで読めるようにしておく.quickproject使えば手間もかからん.
初期化ファイルで読み込ませるのはbad practice.
- 38 :デフォルトの名無しさん:2014/10/07(火) 15:39:11.06 ID:QLizEra8
- ローカルプロジェクトはasdの設定とか面倒そうでやってなかったけど
quickproject使えば自動で生成されるんだな
前より楽になったしもっと早めに調べておけばよかった
- 39 :デフォルトの名無しさん:2014/10/07(火) 19:50:29.81 ID:1sqcCb/K
- >>37
やっぱそんな感じなんですかね
一つのore-xandriaにいろいろ詰め込んでquicklispのlocal-projectに置いてるだけだったので、整理しようかなと思ってたんですが
参考になりました
- 40 :デフォルトの名無しさん:2014/10/07(火) 20:34:41.77 ID:/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.95 ID:WZBCV0KR
- declareをhigh-speedやvar-stringマクロで表すのは無理
コードウォークするか別のアプローチを取るしかない
- 42 :デフォルトの名無しさん:2014/10/07(火) 21:27:43.76 ID:WZBCV0KR
- 書き込んだ後で思い出したけどリードマクロならdeclareに展開しても大丈夫だった
- 43 :デフォルトの名無しさん:2014/10/07(火) 23:54:28.45 ID: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.37 ID: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.70 ID:sWEVGgQw
- 型宣言とか最適化宣言って最初からつけといた方がいい?
後からつけるのは面倒そうだけど最初からつけるのも面倒だし
- 46 :デフォルトの名無しさん:2014/10/08(水) 17:24:24.76 ID:fEubzyH3
- >>45
コンパイラにチューニングの肝を教える為のシステムだろう?
とりあえず動くコード書いてって言うREPL大好きな人なら後からだし、設計から最適化を含む人なら最初から入れるだけじゃないの?
あんまり難しく考えるとはげちゃうぞ
- 47 :デフォルトの名無しさん:2014/10/08(水) 17:37:35.42 ID:WnZHVY78
- 最初から入れる方向で設計する方が
あとあと抜本的大改造しなくてすみそうな
- 48 :デフォルトの名無しさん:2014/10/08(水) 17:43:22.35 ID:sWEVGgQw
- > あとあと抜本的大改造しなくてすみそうな
やっぱり最初から宣言書いといた方が楽かな
はげるのは困るし
- 49 :デフォルトの名無しさん:2014/10/08(水) 17:52:50.07 ID:WnZHVY78
- っていうか
人に聞いて決めるようじゃだめじゃないか?
自分で判断、どう判断しようか、その方針で作っていくうちにその良し悪しを知るのも勉強
- 50 :デフォルトの名無しさん:2014/10/08(水) 17:53:20.23 ID:WnZHVY78
- ×どう判断しようか
○どう判断しようが
- 51 :40です。:2014/10/08(水) 21:03:00.62 ID:kqWBLcYL
- 40です。
みなさま、ありがとうございます。
特に41さま、42さま、43さま、44さま、
具体例を示していただいて、大変勉強になりました。
また45からの「最初か後か」の議論。
参考にいたします。
ちなみに私は、正解を探る技量が自身に無いと考えていて
ひと通り書いて速度が気になれば「後から」改変する
方法でやっています。
これだと、とりあえず必要な目先の事だけに集中できて
コードのスッキリ感が保てると思うので。
- 52 :デフォルトの名無しさん:2014/10/13(月) 19:13:35.11 ID:iLY7u2fN
- cl-ppcreってparse-stringして正規表現をS式にしたあと
それを使って文字列比較のクロージャを作ってるように見えるんだけど
dfaのコードが見当たらない
文字列比較のクロージャを使うやり方では有限状態機械はいらないのかな
- 53 :デフォルトの名無しさん:2014/11/08(土) 12:44:37.99 ID:DaCYtKLp
- clojureとcommon lispとschemeのどれを学んだら良いか悩んでいます。
common lispが気になっているのですが、
モダンLispといわれるclojureの方がJVM言語ということもあって現実的に利用が容易な気もしていますし、
schemeはシンプルということで学びやすいのかなとも思います。
主観でも良いのでおすすめや優位性を教えていただけないでしょうか。よろしくお願いします。
- 54 :デフォルトの名無しさん:2014/11/08(土) 12:54:08.79 ID:6u8ySBY5
- >>53
ここはcommon lispのスレなのでおすすめは決まっているようなものですがclojureです。
ユーザーが親切。
- 55 :デフォルトの名無しさん:2014/11/08(土) 13:24:51.50 ID:vifAICnG
- Schemeがシンプルっていうのは正しいけど誤解でもある。
コミュニティで合意できた部分だけが仕様としてまとまったので仕様だけを見るなら綺麗で単純だけど、
決着がついてない論争は膨大にあって、処理系ごとに方針の違いが大きかったりする。
きちんと理解しようとすると、思ったよりは容易でない。
でも、まあ、 Common Lisp よりは楽かな。
Clojure は JVM が先にあって Lisp 的な外観をくっつけたものなので、
言語としての構造は Lisp 的テイストよりも Java 的テイストに寄ってると思う。
いろいろと Lisp っぽくないので Lisp についての理解を深めたいなら
あまり向いてないかもしれない。
現実路線というのはその通りだと思う。
Common Lisp は良くも悪くも Lisp 代表って感じ。
- 56 :デフォルトの名無しさん:2014/11/08(土) 13:41:44.59 ID:SZeI55Wm
- >>53
使って学ぶならClojureがおすすめ
入門書は孔雀が表紙の本がGaucheの人が訳してて読みやすいし分かりやすい
ここCLスレだけど
- 57 :デフォルトの名無しさん:2014/11/08(土) 14:08:51.53 ID: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.17 ID: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.38 ID:bYONtWuG
- abclとかいうjvm上で動くcommon lisp処理系もあるよ
- 60 :デフォルトの名無しさん:2014/11/08(土) 15:36:43.34 ID:ypSedYZ0
- Clojure人気すぎワロタ
お前らが考えるCommon LISPの実用に足りないこと、
これさえあれば実用できるのになー(チラッチラッ
って思うことって何?
- 61 :デフォルトの名無しさん:2014/11/08(土) 15:54:44.54 ID:bYONtWuG
- コルーチンを実現するためにcl-contでpythonのyieldと同じ機能付けたら
マクロ展開後の式が大きすぎるみたいなこと言われたとき
- 62 :デフォルトの名無しさん:2014/11/08(土) 18:26:11.80 ID: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.02 ID:Y28pqrHL
- おれの個人的意見。
>>53
scheme は scheme を実装して勉強する言語、と言っていいと思う。実装に興味があるならお勧めできる。特に gauche あたりの実装は素晴らしく綺麗で、面白い。
Common Lisp は何かを作るためのパワフルな道具。使えるようになって損はない。力を付ければ、低レベル層から高レベル層まで扱えるのが強み。ただやや古臭いところも。
Clojure は Lisp の皮を被ったちょっと違う何か、かもしれない。モダーンですごく考えられているし、どんどん進歩していて楽しい。コミュニティも活発。
まあ一つをやったら他のことはできない、なんてことはない。どれも面白いから、どんどん手を出すといいと思う。
- 64 :デフォルトの名無しさん:2014/11/08(土) 19:01:00.31 ID:FSWBSvHq
- >>53
>>62の補足
The Little Schemerでは徹底して再帰的定義でやる。なのでwhileとかでの非再帰的定期は出てこない。非再帰的的定義など(きっと)頭の良いチンパンジーでさえできるようなものはいちいち扱わない!
また、fibonacci数を求めるなどを再帰的に定義すると非再帰的定義に比べてとても処理速が遅くなることがあるが、末尾再帰の書き方も出てくるので
非再帰定義に同等の速度を再帰的定義では発揮するやり方も学べる。
具体的にはcollecterを使った再帰的定義で末尾再帰が実現される例が出てくる。
この辺りもこのテキストを勧める理由た。ただし!意外に難しいかもしれない。最近、書き込みがあったがこのテキストがわからん、あきらめたと。
どうにもチンプンカンプンなら関連しそうな概念や例についめネットなどで予備調査しながらやるといいと思う。教えてくれる人がいればそれが一番だけどね。
「何?、継続がわからん?
あのな、いいか、女とセックスしたい時にな、女を脱がしてからセックスするだろ?まず脱がしてからセックスすることを継続だ。
それにつきる。」
- 65 : ◆QZaw55cn4c :2014/11/08(土) 20:58:26.72 ID:3fSv7BFT
- ごめん、セックスに興味ないから‥
- 66 :デフォルトの名無しさん:2014/11/08(土) 21:45:01.32 ID:pv+SsXYA
- ファックよりハックがしたい
- 67 :デフォルトの名無しさん:2014/11/08(土) 21:45:50.89 ID:LHO3gvAT
- >>53
Schemeはいい言語だけど、何かをやろうとするとちょっとめんどいことが多いかな
完全な主観で言えばCommon Lispが好きだけど、
何かやりたいことがあってそれを実現したいのならClojureが一番楽だとは思う
- 68 :デフォルトの名無しさん:2014/11/08(土) 22:04:36.91 ID:nB39qpJZ
- Libraries,�not framework の哲学とか http://eed3si9n.com/node/141 とかが性に合うならClojureでもいいかも
あとは括弧が(Scheme/CLに比べると)少なかったり
- 69 :デフォルトの名無しさん:2014/11/08(土) 22:16:41.69 ID:pv+SsXYA
- lisp方言としてはarcが好きだけど処理系がなあ
- 70 :デフォルトの名無しさん:2014/11/09(日) 17:30:33.39 ID:9cWBVjQF
- アクセス禁止にされてしまいレスが遅くなって申し訳ありません。
実はland of lispとプログラミングClojureはとりあえず読んだことはあります。(内容は正直曖昧に理解しているところもありますが。)
みなさんのお話を聞いたうえで、今特定の仕事に追われているわけでもないですし、common lispを勉強していこうと思います。
何かをするために言語を学びたいというのももちろんありますが, それ以上にlispという概念についての理解を深めたかったことと, いわゆる`lisper`への憧れから, もっとも満足できそうなのはcommon lispかなと判断しました。
皆さんご意見いただき有難うございました。
- 71 :デフォルトの名無しさん:2014/11/09(日) 21:16:34.40 ID:LY/WWL8I
- 最近思うんだけど、Lispの利点で重要だけどあまり宣伝されてないのはrepl。
書いたコードを即時に動かして結果やデータを見つつ、徐々に大きくしていくスタイルは脳汁どばどば出る。
LispマシンやCLIM系のインスペクタやデバッガも、このスタイルのためにあるように思える。
- 72 :デフォルトの名無しさん:2014/11/09(日) 21:40:49.56 ID:OnT24YzJ
- リスプの概念をスマートに認識できるのはスキームだけどな
ま、いいけど
バイバイ
- 73 :デフォルトの名無しさん:2014/11/09(日) 21:41:43.14 ID:OnT24YzJ
- >>71
インタープリター共通の事じゃいのか
- 74 :デフォルトの名無しさん:2014/11/09(日) 21:44:22.51 ID:4nIud3Qa
- >>71
REPL が重要なのは同意。でも、REPL はもっと進化していいと思う。SLIME でもまだ不満だ。
例えばだけど、プロファイリング結果をグラフでREPLとは別のウィンドウに表示し続けるとか。アレグロにはあったけどCLOSのクラス階層を表示してくれるとか。
- 75 :デフォルトの名無しさん:2014/11/09(日) 22:24:39.17 ID:WJCAde3H
- >>74
LightTableってエディタでclojureいぢると少し近い感じになるかも
CLだとやっぱりFranzとか欲しくなる
小売りで買えないから学習用の奴しか触ったこと無いけどたしかに脳汁が出そう
- 76 :デフォルトの名無しさん:2014/11/09(日) 22:46:55.86 ID:HXAk+KxZ
- slime使ってないの?
- 77 :デフォルトの名無しさん:2014/11/09(日) 23:45:42.55 ID:/Un9rwFK
- 昔の Lisp の開発環境って使ったことは無いんだけど、スクリーンショットだとか動画とか見ると、
今でいう JavaScript を Chrome の開発環境で使ってるみたいな感じで、かなりリッチなんだな。
slime なんてめじゃないぞ。 どうして退化してしまったのか…。
- 78 :デフォルトの名無しさん:2014/11/10(月) 11:24:29.22 ID:7fhrA1DH
- >>74
現状ライブラリとして広く共有されてるかは別としてそれなら簡単に作れると思うけどね
クラスブラウザなら素朴なのがslimeにもあるよ(require 'slime-xref-browser) M-x slime-browse-classes これもCLOS入門で試しに作ることが多い
replが重要なんじゃなくて対話性が重要ってことなんじゃないのかな
そして他の言語にかなりキャッチアップされてるから,いまとなっては大した特長でもない
- 79 :デフォルトの名無しさん:2014/11/10(月) 12:13:10.95 ID:1g8XtIDd
- 柔軟性や透明性など、自由度が段違いでは
- 80 :デフォルトの名無しさん:2014/11/10(月) 13:13:00.20 ID:ELyMc5jq
- slime-browse-classes初めて知った
クラスの継承関係を表示するだけでも便利だけどスロットとか出ないの?
- 81 :デフォルトの名無しさん:2014/11/10(月) 13:30:21.54 ID:7fhrA1DH
- >>80
シンボルの上でC-c C-d dすれば良いんじゃねw
いずれにせよ柔軟性や透明性など、自由度が段違いですのでカスタマイズするのも自作するのも簡単だろう
- 82 :デフォルトの名無しさん:2014/11/10(月) 13:34:45.80 ID:1g8XtIDd
- M-x Slime-Inspect
- 83 :デフォルトの名無しさん:2014/11/10(月) 14:24:04.72 ID:ELyMc5jq
- >>81
その方法なんで気付かなかったんだろ
ありがとう
- 84 :デフォルトの名無しさん:2014/11/10(月) 15:06:49.35 ID:ELyMc5jq
- slimeでさえ使い込なせてないのにそれより多機能な>>71があっても豚に真珠だな
早く豚から海豚くらいになりたい
- 85 :デフォルトの名無しさん:2014/11/10(月) 21:56:18.97 ID:9fx5sy2R
- うぉー、LightTable かっけー!サンクス!
いろいろいじってみる。
>>78
すまん、おれの説明が悪かった。
クラスブラウザは単なる例で、もっとLispの特徴を活かした開発支援のアイディアはあると思っているんだよ。
それがあることで生産性がぐっと上がるような。
具体例が出せないが、多分一つの方向は、コードから得られる統計的データを生かすものだと思う。
- 86 :デフォルトの名無しさん:2014/11/10(月) 22:52:31.46 ID:MlKubg7v
- みんな そんなにreplとクラスブラウザが好きなら
Smalltalkにしちゃいなよ
- 87 :デフォルトの名無しさん:2014/11/11(火) 12:06:59.77 ID:VkGqc8ov
- Smalltalkと同程度に、インタラクティブに、イテレーティブに、アジャイルに、GUIを含めて開発できるということだな
- 88 :デフォルトの名無しさん:2014/11/11(火) 22:45:43.16 ID:2Fik2SFv
- Smalltalk はもう何年も前に死んでるじゃないか
- 89 :デフォルトの名無しさん:2014/11/12(水) 00:49:21.53 ID:6Jeysito
- clojureから流れてきたものだけど、CLer的にはloopってどういうものだと認識されてる?
同じlispではあるけど、CommonLispは関数型であろうとしてるように感じないんだよね
効率のためなのかわかりやすさのためなのか、ローカルでさえあれば再代入まみれの副作用まみれっていうように感じる
loopも結局使い方によっては関数型の繰り返しっぽいっちゃぽいんだけど、どう使うにしろlispっぽくはないよね?
そのへんどう思われてるのか気になる。気軽に使っていいものなの?
- 90 :デフォルトの名無しさん:2014/11/12(水) 00:52:40.52 ID:fuf0dhj5
- CLはマルチパラダイム言語。 そう書いてある。
- 91 :デフォルトの名無しさん:2014/11/12(水) 00:58:18.03 ID:bYyH4m5K
- CommonLispはマルチパラダイム言語であって、別に関数型であろうとしているわけではない
Lispは歴史的な理由で関数型と勘違いされているが、手続的にもかけるし関数的にも書けるしOO的にも書ける
状態が増えると保守性もろもろが落ちるのは真なので、そこらへん意識しつつ、適材適所で書けばいい
- 92 :デフォルトの名無しさん:2014/11/12(水) 01:25:54.24 ID:6Jeysito
- >>90>>91
マルチパラダイムってのは確かに書いてあったけど、利用者側はなるべく関数型っぽく書こうとするべきなのかなと思っていた
Scalaとかだとマルチパラダイムだけどなるべく関数型でかくことが推奨されてるイメージがある
なんでも関数型っぽく書くのではなく、わかりやすく書きやすく目的にあったように書きましょうというのがCLの正しいスタイルなのかな?
つまり状況に適していると判断できればloopをつかうことをためらう正当な理由はないってことか。
性能もdo系統や末尾再帰と比べて申し分ないようだし
- 93 :デフォルトの名無しさん:2014/11/12(水) 01:37:55.86 ID:/4vNcbkH
- 出来るだけ関数型で書くかはコーディングスタイルの話じゃないの
- 94 :デフォルトの名無しさん:2014/11/12(水) 01:42:46.23 ID:bYyH4m5K
- 概ねそんな感じでいいと思うけど、結局はどんな書き方も許されているので利用者が適宜判断する以外ないってだけかなあ
CommonLispとしての正しいスタイルというものはたぶんない
- 95 :デフォルトの名無しさん:2014/11/12(水) 03:37:37.47 ID:lROmcFul
- Lisp族は利用者が対象に最適と考える記述を書きやすくしている
他の言語は言語作成者が最適と考える記述を書きやすくしている
- 96 :デフォルトの名無しさん:2014/11/12(水) 07:03:56.02 ID:1phNlnMj
- mapcarは知ってるけど他のmap系は知らないので
hyperspecを眺めていたら疑問に思ったので質問します。
結果を返さないし反映もされないmapcは
どんな有用性があるのでしょうか。
おそらく私の無知なのでしょうが
mapcの存在する意味、使いどころが解りません。
どなたか説明出来ませんか。
- 97 :デフォルトの名無しさん:2014/11/12(水) 12:30:36.42 ID:imZE8AUt
- 副作用
- 98 :デフォルトの名無しさん:2014/11/12(水) 16:34:38.00 ID:l7WlF7lN
- >>96
97のとおり副作用目的で使う
用途としてはdolistと同じだがmapcはそれより昔からある
他の言語でいうとRubyのmapとeach、Schemeのmapとfor-eachのような関係
dolistがあるので存在意義が薄れた
- 99 :デフォルトの名無しさん:2014/11/12(水) 17:21:10.90 ID:PsXMXR/P
- (dolist (obj lst) (f obj))
の場合は
(mapc #'f lst)
に出来て簡潔
- 100 :デフォルトの名無しさん:2014/11/12(水) 22:04:39.40 ID:6H3fSFab
- CL はマルチパラダイムなのは認めるけど、最近のパラダイムを取り込めてなくないか?
誰か haskell の型システムを完璧にCLに取り込むべきだ。(liskell は死んだっぽいし)
- 101 :デフォルトの名無しさん:2014/11/12(水) 22:24:25.19 ID:HM1OSRRp
- S式で書かれたMLコードを、静的な型チェックかけたあとでLISPに変換する
ML2CLとか誰か作ってくれ
- 102 :デフォルトの名無しさん:2014/11/12(水) 23:39:16.85 ID:6Jeysito
- 静的型付けをもってこいということ?
- 103 :デフォルトの名無しさん:2014/11/13(木) 02:37:58.35 ID:vuqKX1tf
- >>100-101
ttps://github.com/rvirding/lfe
erlangをlispとして使う奴ならあるよ、型チェックの為にMLだったらerlangでもよくね?
- 104 :デフォルトの名無しさん:2014/11/14(金) 14:37:50.24 ID:9VbJfwoj
- cons cellのアドレスとそのconscellのcarのアドレスは別物ですよね?
- 105 :デフォルトの名無しさん:2014/11/14(金) 15:39:00.51 ID:1eTt6dGM
- >>104
基本的には別物だけど immidiate value の場合はそうでもないというか、
ちょっと説明しづらいけど変則的なことが起こりうるよ。
- 106 :デフォルトの名無しさん:2014/11/15(土) 01:18:12.55 ID:RRwmbFh6
- 整数がいくつか入ったリストがあってそれで
リストが(1 2 3)なら"1-2-3"という文字列を作りたい
(format nil "~{~A-~}" '(1 2 3))なら"1-2-3-"になってしまう
なんか良い方法無いかな
- 107 :デフォルトの名無しさん:2014/11/15(土) 01:31:48.99 ID:NffmTIGL
- (format nil "~{~a~^-~}" '(1 2 3))でどうでしょう?
- 108 :デフォルトの名無しさん:2014/11/15(土) 01:37:00.40 ID:6gSgpWRh
- formatは変態すぎてついていけないわw
- 109 :デフォルトの名無しさん:2014/11/15(土) 01:38:11.38 ID:RRwmbFh6
- ありがとう
最後だけ除く指定方法があったのか
- 110 :デフォルトの名無しさん:2014/11/15(土) 05:48:51.06 ID:DUX/03NY
- >>105
immediate valueって何が言いたいの?
* (let ((cons '#0=(#0# . nil)))
(eq cons (car cons)))
T
これのこと?
これはimmediate value って言わなくね?
- 111 :デフォルトの名無しさん:2014/11/15(土) 08:18:21.88 ID:s7ITBfO0
- >>110
105が言いたいのは tagged pointer のことじゃないの?
- 112 :デフォルトの名無しさん:2014/11/16(日) 14:40:52.03 ID: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.90 ID:ZU8aQvb1
- リードマクロ#.を使うか定数として定義しておく
- 114 :デフォルトの名無しさん:2014/11/16(日) 14:59:40.61 ID:HhopYCdj
- >>113
ありがとうございます
リードマクロは盲点でした
- 115 :デフォルトの名無しさん:2014/11/16(日) 20:30:55.78 ID:clJNFDl+
- 内包表記をS式で表そうとしたら
結局、loopみたいな文法になるような気がして
loopは他の言語の内包表記のような感覚で使ってるよ
- 116 :デフォルトの名無しさん:2014/11/18(火) 02:17:48.60 ID:+qAFtLW3
- sbcl 1.2.5ってスペシャル変数にバグある?
なんかどうにもおかしい部分があるんだけど
- 117 :デフォルトの名無しさん:2014/11/18(火) 05:43:54.14 ID:6/OvObTG
- >>116
再現コードがないからどこがおかしいのかわからない明日も会社なのに眠れないし最低の気分だよ
- 118 :デフォルトの名無しさん:2014/11/18(火) 13:54:56.29 ID:TO5hAplY
- 今起きて確認したら
(let ((x y))
(declare (special x)))
とするところを
(declare (special x))
(let ((x y))
)
としてただけだった
安心して寝てくれ>>117
- 119 :デフォルトの名無しさん:2014/11/18(火) 16:00:38.09 ID:fmsMXjf6
- ∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
- 120 :デフォルトの名無しさん:2014/11/19(水) 23:38:38.23 ID:074lLX1H
- マクロのマクロのデバッグ辛すぎ
なんで同じ式を生成してるのに片方だけエラー出るんだ
- 121 :デフォルトの名無しさん:2014/11/20(木) 00:49:56.68 ID:OJJlSD0q
- 順序
- 122 :デフォルトの名無しさん:2014/11/20(木) 13:58:27.72 ID:o6KEcfS7
- マクロを生成するマクロのデバッグがむずいのはだいたい下のどれか
・展開で副作用がある糞マクロだから
・100行以上ある糞マクロだから
・分割できるのに1passでなんでもやろうとする糞マクロだから
・`(, ,@)式の扱い方を知らない糞野郎だから
・リスト操作のいろはを知らない糞野郎だから
・マクロのデバッグ方法を知らない糞野郎だから
- 123 :デフォルトの名無しさん:2014/11/20(木) 14:32:28.25 ID:BES29AhP
- その一番下は展開されて122全文になるのか?
- 124 :デフォルトの名無しさん:2014/11/20(木) 16:50:36.53 ID:BES29AhP
- >>120の原因は結局マクロを使ってる部分の式が間違ってただけだったんだけどね
- 125 :デフォルトの名無しさん:2014/11/20(木) 17:57:21.80 ID:OJJlSD0q
- ・使用箇所で意味が変わる不衛生な糞マクロだから ← New!
- 126 :デフォルトの名無しさん:2014/11/20(木) 18:07:48.22 ID:BES29AhP
- もうこのネタつまらないからいいです
- 127 :デフォルトの名無しさん:2014/11/20(木) 22:59:19.78 ID:hiR3RK0/
- eval-whenの使い方がいまいちわからない
てかマクロの展開とコンパイル・実行の関わりがいまいちわからない
- 128 :デフォルトの名無しさん:2014/11/21(金) 00:18:26.19 ID:cycGFVEO
- Lispの闇の一端。
- 129 :デフォルトの名無しさん:2014/11/21(金) 00:21:39.70 ID:XZg95LLm
- >>127
本よめば? 実践CommonLispにもかいてある
http://www.gigamonkeys.com/book/the-special-operators.html
随分とあかるい闇だな
- 130 :デフォルトの名無しさん:2014/11/21(金) 00:29:52.03 ID:RgbwwAKP
- >>127
割と理詰めで、必要性を理解できるところだよ
- 131 :デフォルトの名無しさん:2014/11/23(日) 15:41:55.61 ID:QSlTVfZV
- なんかC++の闇みたいだな
C言語をマルチパラダイムに使えるようにいろいろ突っ込んだのがC++で、
lisp族に同様に色々突っ込んだのがCommon Lispみたいな
- 132 :デフォルトの名無しさん:2014/11/23(日) 15:53:17.70 ID:meGdP6rU
- そうだよ。
- 133 :デフォルトの名無しさん:2014/11/23(日) 16:59:14.19 ID:GIFgmbRX
- じゃあそろそろ新しい規格が欲しいな
- 134 :デフォルトの名無しさん:2014/11/23(日) 17:20:06.94 ID:fhpYLSa9
- そういう声はたまに聞くけどなんで誰も行動しないの?
- 135 :デフォルトの名無しさん:2014/11/23(日) 17:39:25.60 ID:P0o96etQ
- スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
- 136 :デフォルトの名無しさん:2014/11/23(日) 17:47:32.22 ID:fhpYLSa9
- > スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
- 137 :デフォルトの名無しさん:2014/11/23(日) 23:17:38.64 ID:c42CBMgb
- >>136
おいらはformatだけで挫折する自信あるぜ
- 138 :デフォルトの名無しさん:2014/11/23(日) 23:32:32.89 ID:3bQdEAIa
- formatはlispで書けるからいいとしてその下のwriteが大きすぎる
- 139 :デフォルトの名無しさん:2014/11/24(月) 06:08:09.05 ID:hJdg5lTu
- 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
- 140 :デフォルトの名無しさん:2014/11/24(月) 06:09:29.38 ID:hJdg5lTu
- 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
- 141 :デフォルトの名無しさん:2014/11/24(月) 12:58:51.41 ID:utSDrll/
- On Lispを読んでいるのですが、関数型インターフェースのところで
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
- 142 :デフォルトの名無しさん:2014/11/24(月) 23:22:30.44 ID:n8voiuRi
- 静的に狭い場所で管理された副作用は速度の為に許容するって意味じゃね
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
- 143 :デフォルトの名無しさん:2014/11/24(月) 23:34:37.59 ID:Ig3vRg1v
- ブートスクラップ…
- 144 :デフォルトの名無しさん:2014/11/24(月) 23:38:40.09 ID:n8voiuRi
- 横文字には弱いみたい
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
- 145 :デフォルトの名無しさん:2014/11/24(月) 23:56:03.83 ID:sHaIAKeh
- >>141
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
- 146 :デフォルトの名無しさん:2014/12/02(火) 00:48:14.88 ID: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.84 ID:nnpj2kBC
- slime-setupをhelpで見ればわかるよ
- 148 :デフォルトの名無しさん:2014/12/03(水) 11:35:40.26 ID:c/4+MUqf
- This `cl-labels' requires `lexical-binding' to be non-nil
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
- 149 :デフォルトの名無しさん:2014/12/03(水) 14:14:49.31 ID:ReckfAN/
- 146 = 148なのか?
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
- 150 :148:2014/12/03(水) 20:17:25.25 ID:Wu/dN4SR
- >146 = 148なのか?
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
- 151 :デフォルトの名無しさん:2014/12/04(木) 17:51:59.64 ID: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.47 ID:EEY9XvTS
- >>151
eq速くして全体が速くなったというのを寡聞にして聞かない
何作ってるの?
- 153 :デフォルトの名無しさん:2014/12/05(金) 18:35:21.48 ID:0LF1tZEz
- >>152
将棋のAIを作ってます
インライン展開してない状態でプロファイルを取ったとき
eqを使う単純な関数で時間がかかっており、>>151のような状態に気づきました
単なる比較で分岐命令が生成されることに違和感があり質問しました
ちなみに今プロファイルを取りなおしたところそんなに時間もかかっておらず、なんだったのかって感じです
- 154 :SCHEME餃子 ◆8X2XSCHEME :2014/12/06(土) 01:41:19.85 ID:17surw1A
- インライン展開すると関数コールが省略できるってのもあるし、
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
- 155 :デフォルトの名無しさん:2014/12/06(土) 20:52:17.44 ID:Nd/Kweiq
- >>139
http://athos.hatenablog.com/entry/20100504/lisp_in_small_pieces
- 156 :151:2014/12/06(土) 21:57:29.75 ID:lLsVvdEd
- >>154
もうちょっと苦しんでみます
- 157 :デフォルトの名無しさん:2014/12/11(木) 20:00:12.67 ID:URNWWvBk
- gcl使ってたらhandler-case,ignore-errosが無いことに気付いた
やっぱりansi準拠じゃないとansin出来んな
- 158 :デフォルトの名無しさん:2014/12/16(火) 16:07:51.10 ID:/bfoimZs
- define-hogeマクロを定義するマクロはどういう名前にすればいいんだろ
define-define-hogeとかしか思い付かないけど不恰好だし
- 159 :デフォルトの名無しさん:2014/12/16(火) 16:11:37.96 ID:CudKiy/r
- defmacro-hoge でいいだろ
- 160 :デフォルトの名無しさん:2014/12/16(火) 16:13:21.14 ID:/bfoimZs
- そういえばそうか
- 161 :デフォルトの名無しさん:2014/12/22(月) 20:51:38.71 ID:ghZKV2ZQ
- allegro clの無償版って普段のlispプログラミングにどれくらい使えるかな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
- 162 :デフォルトの名無しさん:2014/12/22(月) 21:56:16.19 ID:36o3vILg
- >>161
正直、あまり常用したいとは思わない
何をするにも、試用版かなんかのダイアログが出てきたと思う
allegro購入予定でなければ、cclとかsbclとか使った方がいいと思う
- 163 :デフォルトの名無しさん:2014/12/22(月) 22:35:05.70 ID:18uotQck
- やっぱりただで使わせる気は無いのか
気分転換に環境変えてみようと思ったけど残念
- 164 :デフォルトの名無しさん:2014/12/26(金) 14:55:55.44 ID:ivhZ4+Q3
- loopマクロのトークンはキーワードにするのはどういう意味があるんだ
- 165 :デフォルトの名無しさん:2014/12/27(土) 06:45:42.86 ID:BPfLluBn
- >>164
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
- 166 :デフォルトの名無しさん:2014/12/27(土) 07:44:44.77 ID:PhaXTdWk
- なにがインターンされるかなんて気にして書いてる人なんかいないよ、お兄ちゃん!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
- 167 :デフォルトの名無しさん:2014/12/27(土) 15:12:23.12 ID:Z5TU2mXJ
- ライブラリ書いてる人は気にしてるとおもうけど
- 168 :デフォルトの名無しさん:2014/12/27(土) 15:12:55.73 ID:8eya4d4I
- 補完のときにノイズになるかな
- 169 :デフォルトの名無しさん:2014/12/28(日) 01:28:27.48 ID:Sd6FVmJh
- 外部から参照されるシンボルでもない限りファイルをコンパイルしたファイルからはシンボルは勝手に消えるからライブラリ作るやつはそんな細かいこと気にしてないだろ…
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
- 170 :デフォルトの名無しさん:2014/12/30(火) 09:14:33.10 ID:O6VRzwmF
- loopマクロのuptoとかがキーワードでも動く、ってのは
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
- 171 :デフォルトの名無しさん:2014/12/30(火) 14:08:08.62 ID:27cBYY6U
- 仕様で規定されてるかどうかはloopの項目に記載があるから違法か合法かは読めばわかるな。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
- 172 :デフォルトの名無しさん:2014/12/30(火) 14:27:00.81 ID: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.10 ID:vs+COFUK
- >>171
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
- 174 :デフォルトの名無しさん:2015/01/13(火) 17:41:40.78 ID:n8FCO54L
- 構造体やクラスの名前からスロットを取得する方法ってある?
- 175 :デフォルトの名無しさん:2015/01/14(水) 20:45:49.59 ID:Wha2sJr8
- class-slots てメソッドがあるよ。構造体に使えたかは忘れた
- 176 :デフォルトの名無しさん:2015/01/14(水) 21:08:24.00 ID:1rDSBA79
- >>175
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
- 177 :デフォルトの名無しさん:2015/01/15(木) 02:26:41.38 ID:3CJhIHgr
- guiとかweb系のライブラリないの
- 178 :デフォルトの名無しさん:2015/01/16(金) 01:42:21.96 ID:dM6MW5TX
- あるよ
- 179 :デフォルトの名無しさん:2015/01/17(土) 18:34:52.38 ID:CWvWtJ6X
- evalとapplyの違いは何ですか?
- 180 :デフォルトの名無しさん:2015/01/17(土) 19:00:09.58 ID:P4fG3Fn9
- carとfuncallの違いはなんですか?
と聞いてるようなものなんだが
- 181 :デフォルトの名無しさん:2015/01/17(土) 19:12:25.44 ID:73qLESVw
- >>179
ええとね
単語のスペルと長さがちがうかなぁ
それとevalはevaluateの省略だね
eval is short for evaluate
- 182 :デフォルトの名無しさん:2015/01/17(土) 19:40:12.57 ID:CWvWtJ6X
- http://qiita.com/mandel59/items/8f9111143aea94e7b363
ここで同じだと言っている人がいて気になったので
- 183 :デフォルトの名無しさん:2015/01/17(土) 19:49:45.85 ID:P4fG3Fn9
- この板のいくつかの場所で言われてるけど
その人ちょっとおかしいんだよ
真に受けない方がいい
- 184 :デフォルトの名無しさん:2015/01/17(土) 20:03:49.61 ID:CWvWtJ6X
- いえこの人がおかしいのは知ってますし真に受けるつもりもありません
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
- 185 :デフォルトの名無しさん:2015/01/17(土) 20:30:19.29 ID:P4fG3Fn9
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_apply.html
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_eval.html
- 186 :デフォルトの名無しさん:2015/01/17(土) 21:08:56.14 ID:CWvWtJ6X
- 適用は評価の前段階みたいな感じでいいんでしょうか
- 187 :デフォルトの名無しさん:2015/01/17(土) 21:14:39.87 ID:X3AOWrxV
- あのう、きちっとしたテキストを一冊読んだほうがいいよ
- 188 :デフォルトの名無しさん:2015/01/18(日) 02:14:00.68 ID:m7MxJZlS
- (eval `(funcall ,f ,@args))と(apply f args)が同じっていいたいのかね?
ようわからんけど…
- 189 :デフォルトの名無しさん:2015/01/18(日) 07:43:52.27 ID:FaVyQjad
- evalはシンボルのリストを読み込んでその内容を実行する。
applyは既に評価されて定義された関数を適用すること。
- 190 :デフォルトの名無しさん:2015/01/18(日) 07:49:09.26 ID:oexYoD6M
- eval だけでいいのに何でapplyが重視されてるんだ?、と思ったら、SICPを読もう
- 191 :デフォルトの名無しさん:2015/01/18(日) 09:28:02.82 ID:8C45mKK2
- >>179
commonLispの板でeval applyといえば特定の実装の話になるから
lisp scheme板に話をふった方が良いよ
そういう話好きなやついるから
- 192 :デフォルトの名無しさん:2015/01/19(月) 01:45:04.66 ID:wgUa3gjO
- emacsのslimeについて質問です
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
- 193 :デフォルトの名無しさん:2015/01/23(金) 08:44:20.17 ID:EcShhbHE
- adw-chartingって(ql:quickload :adw-charting)しただけじゃ
使えないんでしょうか
- 194 :デフォルトの名無しさん:2015/01/23(金) 12:42:39.31 ID: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.37 ID:EcShhbHE
- >>194
動きましたありがとうございます
quicklispの使い方をわかってなかったので
exampleをコピペしただけでadw-charting:をつけてませんでした
- 196 :デフォルトの名無しさん:2015/01/23(金) 21:36:01.97 ID: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.93 ID:NpwsZqSV
- 再帰で考えてしまって動的計画法が使いこなせない!
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
- 198 :デフォルトの名無しさん:2015/02/07(土) 08:01:14.41 ID:tz9pe5xW
- http://anime.scripts.mit.edu/images/mitinanime_lain3.jpg
Serial Experiments LainではLispのコードのシーンがあるらしい
- 199 :デフォルトの名無しさん:2015/02/07(土) 08:39:22.93 ID:R2/oFkGJ
- Lain か…懐かしいなぁ
- 200 :デフォルトの名無しさん:2015/02/07(土) 09:32:47.61 ID:FOHLYtkF
- Life Gameのソースっぽい
- 201 :デフォルトの名無しさん:2015/02/07(土) 09:52:15.98 ID:OMRZtff8
- D-WaveのOSがCommonLispってマジ?
- 202 :デフォルトの名無しさん:2015/02/07(土) 10:43:02.43 ID:Ei/z8not
- >>198
>>201
知らないけど有り得そう
- 203 :デフォルトの名無しさん:2015/02/07(土) 10:51:45.09 ID:FOHLYtkF
- >>198
wikiペディアでソースみつけた
ttp://en.wikipedia.org/wiki/Serial_Experiments_Lain
>>201
マジみたい、APIのみ公開だって。
アプリ開発はPython推しだね。
- 204 :デフォルトの名無しさん:2015/02/07(土) 12:02:20.85 ID:saCOOwny
- >>198
このソースを書き写した覚えがあるなと思って、
ハードディスクを漁ったら見つかった。
この部分の前後のソースも写してあったけど、
前の部分のソースが明らかにライフゲームの生死判定だった。
- 205 :デフォルトの名無しさん:2015/02/07(土) 13:26:07.79 ID:yKpU9aut
- その書き写したソース見たい
- 206 :デフォルトの名無しさん:2015/02/07(土) 13:32:26.38 ID:FOHLYtkF
- >>205
>>203のリンクから元本のソース見れるよ。
- 207 :デフォルトの名無しさん:2015/02/07(土) 15:06:09.69 ID:yKpU9aut
- 見れた
配列をbit単位で操作するのは効果あるのかな
- 208 :デフォルトの名無しさん:2015/02/07(土) 15:20:36.83 ID:9qdU9S5T
- >>207
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
- 209 :デフォルトの名無しさん:2015/02/07(土) 15:36:59.11 ID:6rQaurxf
- 一バイトは金のひとすくい
しません、させません、ビットの無駄使い
おかげでビルも立ちました
- 210 :デフォルトの名無しさん:2015/02/08(日) 23:41:38.36 ID:C4tJwi8l
- Common Lisp特殊すぎワロタ
http://photos.appleinsider.com/gallery/11591-4649-150115-Swift-l.jpg
http://iphone.appleinsider.com/articles/15/02/07/apples-new-swift-programming-language-takes-flight-with-getty-images-american-airlines-linkedin-and-duolingo
- 211 :デフォルトの名無しさん:2015/02/09(月) 11:04:57.10 ID:inFNj6Hs
- >>210
stackoverflowに質問を書く前に問題を解決でき
オープンソースにせずとも問題を解決出来る高い生産性が
有るって事だなw
言語も人も。
- 212 :デフォルトの名無しさん:2015/02/09(月) 11:50:04.98 ID:wTON1hpK
- 設定ミスでそうなっただけってどっかで見た気がする
- 213 :デフォルトの名無しさん:2015/02/09(月) 11:55:17.59 ID:gnp8i06N
- オープンソースにせずとも問題を解決出来る、って意味分らないね
- 214 :デフォルトの名無しさん:2015/02/09(月) 18:29:24.33 ID:Ysp4l3Zv
- ttp://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
- 215 :デフォルトの名無しさん:2015/02/09(月) 18:35:56.82 ID:yftdnQui
- うぉー!
FORTLANと同席かい!!
- 216 :デフォルトの名無しさん:2015/02/09(月) 22:47:33.62 ID:JzEtMJoP
- FORTRANじゃあーい!!
- 217 :デフォルトの名無しさん:2015/02/09(月) 22:57:24.39 ID:HcxTGLiU
- Ratforってあったよね
- 218 :デフォルトの名無しさん:2015/02/09(月) 23:47:36.78 ID:JzEtMJoP
- Rational Fortran
初代プログラミング作法(programming tools)のやつね。
- 219 :デフォルトの名無しさん:2015/02/09(月) 23:55:00.91 ID:bwEZbR4B
- http://jbbs.shitaraba.net/sports/42269/
- 220 :デフォルトの名無しさん:2015/02/10(火) 17:05:14.42 ID:Xy5S1/Fv
- >> 218
「ソフトウェア作法」ね
http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BD%9C%E6%B3%95-Brian-W-Kernighan/dp/4320021428/ref=pd_sim_b_3?ie=UTF8&refRID=00X1H3NNRVZ5P3BCDTMQ
- 221 :デフォルトの名無しさん:2015/03/07(土) 00:42:51.80 ID: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.97 ID: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.52 ID:mW7RcyXy
- コードコピペしたらちゃんと動いたけど
flattenが間違ってんじゃないかな
- 224 :デフォルトの名無しさん:2015/03/07(土) 16:01:02.06 ID:yXgYIHFE
- 試しにwindows版のsbcl1.2.7入れてやってみたが
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
- 225 :デフォルトの名無しさん:2015/03/07(土) 16:17:29.95 ID:IuS2RJP4
- clisp+alexandria:flattenでやってみたけど動くよ
- 226 :デフォルトの名無しさん:2015/03/07(土) 16:50:40.73 ID:yXgYIHFE
- debianのsbcl1.0.57.0ではちゃんと動く
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
- 227 :デフォルトの名無しさん:2015/03/07(土) 19:54:37.09 ID:sXXhs6bf
- これが関係してる?
#:g1: SBCL 1.2.2でのbackquoteの変更
http://g000001.cddddr.org/3615721500
- 228 :デフォルトの名無しさん:2015/03/08(日) 14:36:36.18 ID: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.84 ID:4UYhxwse
- SBCLのバッククォートは構造体に変換されるようになったから
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
- 230 :228:2015/03/08(日) 19:54:56.42 ID: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.28 ID:gpmCn1O6
- (変数 値)のリストと式が与えられた状態で、変数を値に束縛した環境で式を評価したいのですが、良い方法がわかりません
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
- 232 :デフォルトの名無しさん:2015/03/17(火) 10:47:28.60 ID: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.17 ID:Zf13xXA9
- なぜか変な絵文字が入った…
- 234 :デフォルトの名無しさん:2015/03/17(火) 13:59:09.21 ID:gpmCn1O6
- >>232
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます
ある言語のサブセットを作ってます
- 235 :デフォルトの名無しさん:2015/03/26(木) 19:32:41.80 ID: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.36 ID:7QpaiPyE
- >>235
comon lisp よりも scheme の方がよさそーだ‥
- 237 :デフォルトの名無しさん:2015/03/26(木) 21:35:12.89 ID:RYFxX3Lv
- >>235
なんかコイツ自身レベルが低そうだ
- 238 :デフォルトの名無しさん:2015/03/31(火) 15:33:38.54 ID:Wn1BJkY4
- 235です。
>>235
それはなぜですか。
もしよければ、意見を聞きたいです。
>>237
え、わたし(235)のこと。それともリンク先を書いた人のこと。
私自身は
ローカルなら他から呼べなくて安全といえるけど、
1つの定義が大きくなってあまり好きじゃないんです。
極端に言えば、
(1つ目の処理 ...)
(2つ目の処理 ...)
(3つ目の処理 ...)
と、書いていって最終的に
(3つ目の〜 (2つ目の〜 (1つ目の〜 ...)))
と、するのが好きなのですが
好き嫌いを超えた優劣や善悪があるのでしょうか。
- 239 :デフォルトの名無しさん:2015/04/03(金) 04:59:16.54 ID:OpTcNNTw
- 元スレで作った人に聞けばいいのでは…
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
- 240 :デフォルトの名無しさん:2015/04/04(土) 21:18:43.12 ID:+yfNqqsV
- 初歩的な質問ですいません。
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?
- 241 :デフォルトの名無しさん:2015/04/04(土) 21:30:16.17 ID:zaPqarn1
- sudo yum install sbcl.x86_64
じゃだめなん?
- 242 :デフォルトの名無しさん:2015/04/08(水) 14:04:17.18 ID:0NyqAI50
- Eclipse Common Lisp がオープンソース化された話があるみたいだけど、
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。
- 243 :ドリル優子:2015/04/20(月) 17:48:30.95 ID:pJtoLIOS
- これはさすがにヤバイだろww
【神回】美人ニコ生主mAriAがFME切り忘れで公開オナニー!?【電マ】
https://www.youtube.com/watch?v=Y6Fz1MYedSw
- 244 :デフォルトの名無しさん:2015/04/20(月) 17:51:10.30 ID:6c0j1ZNC
- >>243
しねかす
- 245 :デフォルトの名無しさん:2015/04/20(月) 18:27:45.45 ID:BMKjvfkW
- こんにちわ、これってどういう場面で使うんでしょうか??
関わりがないってことは特に知る必要ないんでしょうか?
- 246 :デフォルトの名無しさん:2015/05/04(月) 09:54:28.68 ID:1poVLIgC
- >>244
だまされるお前が悪い。
クソ動画見てオナニーしてろ
- 247 :デフォルトの名無しさん:2015/05/04(月) 14:43:15.18 ID:wppJPNh0
- >>246
うわ!もろに犯罪者の発想だな
「騙される方が悪い」
おまえの人生を彷彿とさせるな
犯罪人生上等君
- 248 :デフォルトの名無しさん:2015/06/05(金) 01:19:51.77 ID:06+5DuOz
- http://www.infoq.com/jp/news/2015/06/lispworks-mobile-runtime
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい
- 249 :デフォルトの名無しさん:2015/06/14(日) 21:41:14.46 ID:DbwnGjGJ
- clispって5年もバージョンアップないんだね
もう終わりか
- 250 :デフォルトの名無しさん:2015/06/18(木) 21:22:38.22 ID:WKPwU09x
- つい最近、lisp始めたんですけど、
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
- 251 :デフォルトの名無しさん:2015/06/19(金) 02:49:41.26 ID:xcKv4OTq
- >>250
処理系によって違ってくるから何を使ってるか教えて
- 252 :デフォルトの名無しさん:2015/06/19(金) 12:32:36.15 ID:sjap9hEB
- >>251
詳しくは知らないんだけど、
common lispで
format関数使って日本語と文字列を結合しようとするとそのエラーが出ます。
- 253 :デフォルトの名無しさん:2015/06/20(土) 12:18:47.33 ID:hw0FsWHq
- windowsのclispでcl-opencvって使えますか?
- 254 :デフォルトの名無しさん:2015/07/06(月) 23:11:46.67 ID: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.25 ID: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)))
- 256 :254:2015/07/09(木) 18:43:04.87 ID:dOwpf5X7
- >>255
おおお。ありがとうございます。
split-sequenceなんてのがあるのですね。
勉強になりました。
- 257 :254:2015/07/10(金) 07:34:53.35 ID:f1nU5bVE
- いろいろ参考書を買ったけど、
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
- 258 :デフォルトの名無しさん:2015/07/13(月) 12:29:38.83 ID:mO7PTTVX
- あるサイトに
(reduce #'+ '(1 2 3))
;=> 7
6じゃないのですか?
- 259 :デフォルトの名無しさん:2015/07/13(月) 23:25:59.50 ID:RdQReua/
- >>258
そのサイトの管理者なりに教えてあげればいいじゃない
- 260 :デフォルトの名無しさん:2015/07/15(水) 02:32:01.68 ID:UqDQ6ToJ
- >>258
6だよ‥アスペかよw
- 261 :デフォルトの名無しさん:2015/07/19(日) 21:44:01.49 ID:iFwTTRmf
- 最近はcl freaks に出ている人達を中心にcommon lispが元気ある感じするよね
- 262 :名無しのプログラマ:2015/08/09(日) 17:59:36.15 ID:Icb40LOY
- 再帰の魅力
- 263 :デフォルトの名無しさん:2015/09/15(火) 00:43:38.55 ID:1sxk5v5N
- lispworks proかったった。
買ったからには勉強せねば。
実はまだlispなんにも知らん。
- 264 :はちみつ餃子 ◆8X2XSCHEME :2015/09/15(火) 05:52:09.24 ID:e2MtLkqs
- 知らんのにいきなり買うとか豪儀やな
- 265 :デフォルトの名無しさん:2015/09/15(火) 10:02:52.02 ID:qUwxVhtE
- ならリスプの統合環境と言っていいか、そこは怪しいが
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな
- 266 :デフォルトの名無しさん:2015/09/22(火) 22:58:08.35 ID: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.48 ID:52HAR6EJ
- スペースが入ってなかったり入っていたり
(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))
- 268 :デフォルトの名無しさん:2015/09/22(火) 23:27:01.08 ID:zMYL44aC
- >>267
ありがとうございます。ずいぶん難しいなあと思いました。
コードを整えるためにスペース入れたらエラーなので。
規則はあるのでしょうか?
- 269 :はちみつ餃子 ◆8X2XSCHEME :2015/09/23(水) 01:17:09.38 ID:Z8UtHxkJ
- >>268
- や * や = も英数字と同じ扱い。 分けるものがなければつながるというだけ。
=n とあればそれは =n という名前と認識されるし、 1- は 1- という名前。
- 270 :デフォルトの名無しさん:2015/09/23(水) 02:22:31.73 ID:2zCL7K2h
- >>269さん
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
- 271 :デフォルトの名無しさん:2015/09/23(水) 02:25:45.54 ID:2zCL7K2h
- >>263
30万円くらいですか。すごいですね
- 272 :はちみつ餃子 ◆8X2XSCHEME :2015/09/23(水) 03:31:44.34 ID:Z8UtHxkJ
- >>270
> 関数には引数に1-をいれるというオプションのようなものが付く
高階関数のことを言ってるのかな。
そのあたりはどうせ避けて通れないので、
学んでいるうちにわかってくるよ。
- 273 :デフォルトの名無しさん:2015/09/23(水) 08:07:48.78 ID:+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.24 ID: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.13 ID:KkwgeqRl
- >>271
32bitだからそんなにしないよ。
今とりあえず、いじくりまわぢてる。
- 276 :274:2015/10/01(木) 02:50:50.32 ID:tesABx2F
- 自己レスですが、CLISPで散々いろいろ試したけどどうにもならなかったので
SBCLに変えてみたらまともに動くようになりましたので報告
- 277 :デフォルトの名無しさん:2015/10/03(土) 13:14:55.68 ID:IK0Y+UBj
- perl の perldoc
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'
- 278 :デフォルトの名無しさん:2015/10/03(土) 13:24:00.92 ID:8AFtPGV4
- xyzzy上でで良ければ
reference.xmlから
reference.txtや reference.chm使って補完できるよ
足りない関数名ややシンボル名は静的補完ファイルに登録するか、reference.*に追加するか
- 279 :デフォルトの名無しさん:2015/10/03(土) 13:25:24.46 ID:8AFtPGV4
- あ、ヘルプもね
- 280 :デフォルトの名無しさん:2015/10/04(日) 00:50:00.79 ID: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.15 ID: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.13 ID:FtwpBXng
- >>281
なるほど
ありがとう
これでもう大丈夫になりました
- 283 :282:2015/10/06(火) 16:16:19.87 ID: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.25 ID:tKz57RTt
- 話題になってないけど、
コンスセル原器が廃止されるらしいぞ
- 285 :デフォルトの名無しさん:2015/10/18(日) 00:53:59.90 ID:evkMpRYg
- え?
- 286 :デフォルトの名無しさん:2015/10/18(日) 08:54:54.56 ID:1LMJTfhY
- ttps://www.jwz.org/blog/2015/10/cons-conflict-resolved-at-last/
これだね。メートル原器もなくなると言うし、
時代の流れを感じるね
- 287 :デフォルトの名無しさん:2015/10/19(月) 22:17:19.25 ID:v3Pllrwr
- コンス原器とか言ってるのはもちろんネタだからな、わかってると思うけど
メートルの定義が科学的なものに置き換えられるから、そのパロディだからな?
- 288 :デフォルトの名無しさん:2015/10/20(火) 12:37:44.25 ID:z0N4BuQy
- 原器は力が溢れている。 元気だから。 なんちゃってーー
- 289 :デフォルトの名無しさん:2015/10/21(水) 00:22:44.88 ID:vQvk97RO
- 原器があればなんでもできる!
- 290 :デフォルトの名無しさん:2015/10/21(水) 02:26:28.45 ID:FfxQn45L
- ネタだったのか
どういうものなんだろうと唸りながら考えていた俺
- 291 :デフォルトの名無しさん:2015/10/21(水) 11:49:26.05 ID:NJ/LNABV
- やる気原器いわき的な
- 292 :デフォルトの名無しさん:2015/10/22(木) 09:17:07.87 ID:gRBaWwNT
- グレアムの魔道書からではなく
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
- 293 :デフォルトの名無しさん:2015/10/22(木) 23:40:53.70 ID:rUneY+ez
- >>273
ありがとうございます。今はじめて>>273さんの書き込みを読みました。
しばらく時間が経ったのでclispのことを忘れてしまいました。
ぼちぼち回復するようにがんばります。
- 294 :デフォルトの名無しさん:2015/10/24(土) 04:48:56.04 ID:sSEtncll
- >>292
コードの美しさを感じ取れるといいコードが書けるようになるよ
コードは書くよりも読むほうが、うんと多いから
- 295 :デフォルトの名無しさん:2015/10/26(月) 23:33:50.22 ID:cnZS0lks
- >>286
スレ違いなツッコミだがメートル原器はずっと前に基準でなくなっている
最近の話題はキログラムの方だな
- 296 :デフォルトの名無しさん:2015/10/27(火) 04:19:42.73 ID:qSWumRv1
- >>294
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。
- 297 :デフォルトの名無しさん:2015/11/12(木) 23:53:54.83 ID:Viwd1W6j
- Schemeだとtyped racketとか型つけるのが流行っぽいけどcommon lispも似た感じになってたりします?
- 298 :デフォルトの名無しさん:2015/11/13(金) 13:06:25.41 ID:mBt3iEyA
- Haskellは時々仕様が変わるから安心して使えない
- 299 :デフォルトの名無しさん:2015/11/15(日) 22:48:26.04 ID:NgFg0iNO
- Arrow-macrosというの見つけた
なんかだ好き
-<> はダイアモンドの杖だって
https://github.com/hipeta/arrow-macros/
http://quickdocs.org/arrow-macros/
- 300 :デフォルトの名無しさん:2015/11/15(日) 22:49:19.75 ID:NgFg0iNO
- あ、誤字
なんだか好き
- 301 :デフォルトの名無しさん:2015/11/18(水) 00:22:55.99 ID:D8xoadz9
- >>299
うーん、ちょっと使ってみたいけど、
後からワケが分からなくなりそうで不安
- 302 :デフォルトの名無しさん:2015/11/26(木) 00:14:06.33 ID: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.69 ID:gXyRUJBd
- llvmはフリーなソフトウェアの敵
みたいなことをハッカー界隈の偉い人が言ってなかったっけ?
- 304 :デフォルトの名無しさん:2015/11/27(金) 06:16:02.28 ID:1fwdzPCg
- GPL 教団の人だな
- 305 :デフォルトの名無しさん:2015/12/03(木) 01:47:18.74 ID:mCOP4ysm
- llvmやjavaなどのgpl教団に狙われやすいcl
Schemeはそんなことないのに
- 306 :デフォルトの名無しさん:2015/12/23(水) 21:05:51.95 ID:83EO6D9Q
- 単純な質問なのですが、CommonLispにはリードマクロっていう構文解析機を自分で作れるてきな機能がありますが
これってなんで廃れたのでしょうか?正直最強の機能だと感じたのですが
ただ、触った感じ
・定義しないといけない事が多すぎて、自分好みのカスタマイズが時間がかかる。
・同じ意味だけど構文解析失敗したら最後に成功したところまで戻ってくれないのでコレジャナイ感がすごい。
・みんながみんなカスタマイズを好きにやって文化的に統合できなくなった
このあたりが問題かなって感じているのですが、実際Lispコミュニティーにいる人たちのご意見が欲しいです。
OnLispとかLet over Lamnbdaとかやりおえてのままの感想なので
- 307 :デフォルトの名無しさん:2015/12/24(木) 00:08:08.80 ID: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.10 ID: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.99 ID:62o9ix/6
- こないだ出た common lisp recipes の電子版 ttp://www.apress.com/9781484211779 が2月1日までセールだとか(ダイレクトマーケティング)
- 310 :デフォルトの名無しさん:2016/02/03(水) 08:45:51.54 ID:TXUepsJB
- Pypiみたいに誰でもパッケージ登録出来るリポジトリが欲しい
- 311 :デフォルトの名無しさん:2016/02/04(木) 09:02:39.44 ID:0n3FRGss
- >>306
そもそも頻繁に使うようなものでもないし、廃れるという表現は違和感ありますな。
使う人は使っているけど、他人に迷惑をかけるかもしれないので、使用する際は注意して自己責任でやってくれと。
- 312 :デフォルトの名無しさん:2016/02/20(土) 11:39:04.63 ID:NPEQ4RNb
- >>309
実用Common Lisp Kindle版も半額だなあ
翔泳社のKindle本が半額セールなんだとか
90 KB
新着レスの表示
★スマホ版★
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.05 2023/04/05 Walang Kapalit ★
FOX ★