Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、
Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。
それ以外でもCommon Lispについての話題なら歓迎します。
ま、ゆっくりやりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
■前スレ
【入門】Common Lisp その10【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1361341876/
■Wiki
http://wiki.fdiary.net/lisp/ (id:guest pass:cl)
http://cl.cddddr.org/
http://tips.lisp-users.org/common-lisp/
探検
【入門】Common Lisp その11【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/09/21(日) 22:49:21.73ID:FJokPHUt132デフォルトの名無しさん
2014/11/23(日) 15:53:17.70ID:meGdP6rU そうだよ。
133デフォルトの名無しさん
2014/11/23(日) 16:59:14.19ID:GIFgmbRX じゃあそろそろ新しい規格が欲しいな
134デフォルトの名無しさん
2014/11/23(日) 17:20:06.94ID:fhpYLSa9 そういう声はたまに聞くけどなんで誰も行動しないの?
135デフォルトの名無しさん
2014/11/23(日) 17:39:25.60ID:P0o96etQ スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
改善案とか出すだけのやつやちょっとカスタマイズするようなやつが沢山いても根本的な変化は起きない。
変化してる言語は言語好きの処理系屋が集まって年中議論したり機能追加してる。
ユーザーが高度にカスタマイズできるせいで大抵の要求は実現できるから局所最適解にはまって進化がとまるのはあるかもな。
136デフォルトの名無しさん
2014/11/23(日) 17:47:32.22ID:fhpYLSa9 > スクラッチでCommonLispを書けるやつがある程度いないと駄目だから。
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
common lisp処理系作れるっていうこと?
Cで挑戦したことはあるけどパッケージ一通り実装したりリードマクロ付けたあたりまでは
やったんだけどCLOSやコンディションの実装はあまりの大きさに挫折したわ
137デフォルトの名無しさん
2014/11/23(日) 23:17:38.64ID:c42CBMgb >>136
おいらはformatだけで挫折する自信あるぜ
おいらはformatだけで挫折する自信あるぜ
138デフォルトの名無しさん
2014/11/23(日) 23:32:32.89ID:3bQdEAIa formatはlispで書けるからいいとしてその下のwriteが大きすぎる
139デフォルトの名無しさん
2014/11/24(月) 06:08:09.05ID:hJdg5lTu 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
140デフォルトの名無しさん
2014/11/24(月) 06:09:29.38ID:hJdg5lTu 3imp 読んで継続実装したところで諦めた。CLじゃないけど。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
面白かったので Lisp in Small Pieces 買おうか迷ってるんだけど持ってる人いる?内容どうか聞きたい。
141デフォルトの名無しさん
2014/11/24(月) 12:58:51.41ID:utSDrll/ On Lispを読んでいるのですが、関数型インターフェースのところで
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
各関数の呼び出しは、その呼び出し自身が支配するオブジェクトを
安全に書き換えることができる
という記述がああります
この、呼び出し自身が支配するオブジェクトとはどのようなことなのでしょうか?
続く文章で、関数呼び出しの返り値として受けとるオブジェクトは支配する
-> 書き換えても良い(安全に)
引数として渡されるオブジェクトは支配しない
->書き換えてはいけない(でも既に渡しちゃっているんでは?)
ということなのでしょうか?
142デフォルトの名無しさん
2014/11/24(月) 23:22:30.44ID:n8voiuRi 静的に狭い場所で管理された副作用は速度の為に許容するって意味じゃね
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
ところでブートスクラップでlisp to cコンパイラを作ろうとしてるんだけど
compile関数を実装するときに渡されたシンボルか関数からCのコードを生成するときに
function-lambda-expressionで関数の本体部分を取得すればいいのかな
kclのコード見てもcompile-fileとかはあったけどcompile関数は見つからなかったのはなんでだろう
143デフォルトの名無しさん
2014/11/24(月) 23:34:37.59ID:Ig3vRg1v ブートスクラップ…
144デフォルトの名無しさん
2014/11/24(月) 23:38:40.09ID:n8voiuRi 横文字には弱いみたい
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
要約するとcompileに渡された値からどうやって関数の引数やら本体部分を得るかを知りたいわけです
145デフォルトの名無しさん
2014/11/24(月) 23:56:03.83ID:sHaIAKeh >>141
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/functionalProgramming.html
他の誰のものでもないオブジェクトという表現からいえば、まさに安全に書き換えることができるという意味で言ってるのだと思う
つまり、関数呼び出し自身が支配するオブジェクト⇔関数呼び出し時に安全に書き換えられるオブジェクト
なので、後段の部分の理解もそういうことで大体いいのでは
既に渡してるというところで引っかかってるみたいだけど、ここの話は読む限り関数的な書き方のLispの慣習なので、
要は受け取った引数を関数内部で勝手に書き換えるのはLispの関数的な書き方の慣習上よくないとされてるからやめろってだけの話なぜ慣習の話が出てくるのかといえば、どのオブジェクトが支配的であるか、つまり安全に書き換えられるかというのは書く人間が決めることだから
で、一般的なLispの慣習では引数は支配的でないけど、呼び出しの返り値は支配的とされているよ、という話
この慣習を守れば多くの場合純粋関数的な書き方と同等のローカル性を得られるけど、その節の後半部分はそうでない場合もあることを解説してる
146デフォルトの名無しさん
2014/12/02(火) 00:48:14.88ID:oMH805i/ 教えてくれ
Emacs23.3 (On windows) に slime 入れたんだ
.emacs にはこんな感じで書いた
(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path "~/.emacs.d/site-lisp/slime")
(require 'slime-autoloads)
(slime-setup)
で、まあ動くことには動く
でもなんでか以前clispで使ったときはあった起動時アニメーションがないんだ
なんで?
Emacs23.3 (On windows) に slime 入れたんだ
.emacs にはこんな感じで書いた
(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path "~/.emacs.d/site-lisp/slime")
(require 'slime-autoloads)
(slime-setup)
で、まあ動くことには動く
でもなんでか以前clispで使ったときはあった起動時アニメーションがないんだ
なんで?
147デフォルトの名無しさん
2014/12/02(火) 00:57:02.84ID:nnpj2kBC slime-setupをhelpで見ればわかるよ
148デフォルトの名無しさん
2014/12/03(水) 11:35:40.26ID:c/4+MUqf This `cl-labels' requires `lexical-binding' to be non-nil
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
ntemacs23で出たエラーですが
原因は何でどうすれば解決しますか?
149デフォルトの名無しさん
2014/12/03(水) 14:14:49.31ID:ReckfAN/ 146 = 148なのか?
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
エスパーだけどslimeのことならemacs24にすれば良いじゃね?
しかし質問のしかた最悪だな
150148
2014/12/03(水) 20:17:25.25ID:Wu/dN4SR >146 = 148なのか?
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
ちがいますよ
>エスパーだけどslimeのことならemacs24にすれば良いじゃね?
ありがとうございます
>しかし質問のしかた最悪だな
ごめんなさい
151デフォルトの名無しさん
2014/12/04(木) 17:51:59.64ID:mQjd1sH/ 質問です
素人知識ながらコードの高速化を行っているのですが、例えば次のコードをdisassembleします(sbclを使ってます)
(defun my-eq (a b)
(declare (optimize (speed 3) (safety 0)))
(eq a b))
; disassembly for MY-EQ
; Size: 21 bytes
; 0CAE251A: 39FA CMP EDX, EDI ; no-arg-parsing entry point
; 1C: 740A JEQ L1
; 1E: BA0B001001 MOV EDX, 17825803
; 23: L0: 8BE5 MOV ESP, EBP
; 25: F8 CLC
; 26: 5D POP EBP
; 27: C3 RET
; 28: L1: BA27001001 MOV EDX, 17825831
; 2D: EBF4 JMP L0
すると高速化においてよろしくないとされる条件分岐命令(JEQ)が出力されます
このようなJEQは本当に高速化の脅威になりますか?
また、取り除くことはできますか?
素人知識ながらコードの高速化を行っているのですが、例えば次のコードをdisassembleします(sbclを使ってます)
(defun my-eq (a b)
(declare (optimize (speed 3) (safety 0)))
(eq a b))
; disassembly for MY-EQ
; Size: 21 bytes
; 0CAE251A: 39FA CMP EDX, EDI ; no-arg-parsing entry point
; 1C: 740A JEQ L1
; 1E: BA0B001001 MOV EDX, 17825803
; 23: L0: 8BE5 MOV ESP, EBP
; 25: F8 CLC
; 26: 5D POP EBP
; 27: C3 RET
; 28: L1: BA27001001 MOV EDX, 17825831
; 2D: EBF4 JMP L0
すると高速化においてよろしくないとされる条件分岐命令(JEQ)が出力されます
このようなJEQは本当に高速化の脅威になりますか?
また、取り除くことはできますか?
152デフォルトの名無しさん
2014/12/05(金) 02:59:30.47ID:EEY9XvTS153デフォルトの名無しさん
2014/12/05(金) 18:35:21.48ID:0LF1tZEz154SCHEME餃子 ◆8X2XSCHEME
2014/12/06(土) 01:41:19.85ID:17surw1A インライン展開すると関数コールが省略できるってのもあるし、
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
大きなジャンプを避ければメモリローカリティが維持されてデータ (プログラム) がキャッシュに乗って速度に貢献することもある。
キャッシュってのは侮れない要素なんだけど、正直言って実際に試してみないとどう効いてくるのかさっぱりわからない。
プロファイラでもそういう差は見え難いしな。 予想にこだわらずに色々と試してみるのが吉。 その内に勘が働くようになるよ。
155デフォルトの名無しさん
2014/12/06(土) 20:52:17.44ID:Nd/Kweiq157デフォルトの名無しさん
2014/12/11(木) 20:00:12.67ID:URNWWvBk gcl使ってたらhandler-case,ignore-errosが無いことに気付いた
やっぱりansi準拠じゃないとansin出来んな
やっぱりansi準拠じゃないとansin出来んな
158デフォルトの名無しさん
2014/12/16(火) 16:07:51.10ID:/bfoimZs define-hogeマクロを定義するマクロはどういう名前にすればいいんだろ
define-define-hogeとかしか思い付かないけど不恰好だし
define-define-hogeとかしか思い付かないけど不恰好だし
159デフォルトの名無しさん
2014/12/16(火) 16:11:37.96ID:CudKiy/r defmacro-hoge でいいだろ
160デフォルトの名無しさん
2014/12/16(火) 16:13:21.14ID:/bfoimZs そういえばそうか
161デフォルトの名無しさん
2014/12/22(月) 20:51:38.71ID:ghZKV2ZQ allegro clの無償版って普段のlispプログラミングにどれくらい使えるかな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
制限はヒープ領域だけみたいだけどヒープ領域が60Mbってどれくらいの制限がいまいちわからんな
162デフォルトの名無しさん
2014/12/22(月) 21:56:16.19ID:36o3vILg163デフォルトの名無しさん
2014/12/22(月) 22:35:05.70ID:18uotQck やっぱりただで使わせる気は無いのか
気分転換に環境変えてみようと思ったけど残念
気分転換に環境変えてみようと思ったけど残念
164デフォルトの名無しさん
2014/12/26(金) 14:55:55.44ID:ivhZ4+Q3 loopマクロのトークンはキーワードにするのはどういう意味があるんだ
165デフォルトの名無しさん
2014/12/27(土) 06:45:42.86ID:BPfLluBn >>164
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
パッケージの名前空間を汚さないため、だと思う。キーワードを使わないと、thenとかuptoとかのシンボルがそのパッケージに作られちゃう。
lispのプログラムってホントにデータなんだ、と驚いた記憶がある。
166デフォルトの名無しさん
2014/12/27(土) 07:44:44.77ID:PhaXTdWk なにがインターンされるかなんて気にして書いてる人なんかいないよ、お兄ちゃん!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
:then :upto だとエディタのハイライトで読みやすくなるからだよ。
それが読みやすくなければ、then uptoと書けば良いよ!
167デフォルトの名無しさん
2014/12/27(土) 15:12:23.12ID:Z5TU2mXJ ライブラリ書いてる人は気にしてるとおもうけど
168デフォルトの名無しさん
2014/12/27(土) 15:12:55.73ID:8eya4d4I 補完のときにノイズになるかな
169デフォルトの名無しさん
2014/12/28(日) 01:28:27.48ID:Sd6FVmJh 外部から参照されるシンボルでもない限りファイルをコンパイルしたファイルからはシンボルは勝手に消えるからライブラリ作るやつはそんな細かいこと気にしてないだろ…
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
無用のシンボルをインターンしたくなくてdefpackageで#:hogeって書くやつはいるがキーワードパッケージとcl-userのシンボルは消しにくいからまあ理解もできるが、それもコンパイルすれば消えるし
170デフォルトの名無しさん
2014/12/30(火) 09:14:33.10ID:O6VRzwmF loopマクロのuptoとかがキーワードでも動く、ってのは
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
ちゃんと仕様になってるのかな。
おれはへえキーワードでもいいんだ、と知ってからはずっとキーワード派。
無駄なシンボルがインターンされているなんて、おれの美意識としては嫌。
他人に強要はしない。
171デフォルトの名無しさん
2014/12/30(火) 14:08:08.62ID:27cBYY6U 仕様で規定されてるかどうかはloopの項目に記載があるから違法か合法かは読めばわかるな。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
無駄なシンボルがインターンされるという意味では、キーワードパッケージにインターンされる方が
グローバルに汚染される分、ローカルパッケージ汚染より質が悪い筈。
矛盾したこだわり…。
172デフォルトの名無しさん
2014/12/30(火) 14:27:00.81ID:vs+COFUK CLHSより引用。
loop keyword n. Trad. a symbol that is a specially recognized part of the syntax of an extended loop form.
Such symbols are recognized by their name (using string=), not by their identity;
as such, they may be in any package. A loop keyword is not a keyword.
loop keyword n. Trad. a symbol that is a specially recognized part of the syntax of an extended loop form.
Such symbols are recognized by their name (using string=), not by their identity;
as such, they may be in any package. A loop keyword is not a keyword.
173デフォルトの名無しさん
2014/12/30(火) 19:08:08.10ID:vs+COFUK >>171
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
矛盾はしてなくない?
皆が:uptoを使えば、キーワードパッケージだけにそのシンボルができるんだから。
キーワードパッケージはloopに限らずぐちゃぐちゃと変なシンボルが登録されるけどそれは仕方ないこと。
世界の汚さを一手に引き受ける、それがキーワードパッケージの役割だと思ってる。
174デフォルトの名無しさん
2015/01/13(火) 17:41:40.78ID:n8FCO54L 構造体やクラスの名前からスロットを取得する方法ってある?
175デフォルトの名無しさん
2015/01/14(水) 20:45:49.59ID:Wha2sJr8 class-slots てメソッドがあるよ。構造体に使えたかは忘れた
176デフォルトの名無しさん
2015/01/14(水) 21:08:24.00ID:1rDSBA79 >>175
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
ありがとう
検索して見つけたこれが参考になった
ttp://stackoverflow.com/questions/3086561/make-clos-objects-printable-in-lisp
177デフォルトの名無しさん
2015/01/15(木) 02:26:41.38ID:3CJhIHgr guiとかweb系のライブラリないの
178デフォルトの名無しさん
2015/01/16(金) 01:42:21.96ID:dM6MW5TX あるよ
179デフォルトの名無しさん
2015/01/17(土) 18:34:52.38ID:CWvWtJ6X evalとapplyの違いは何ですか?
180デフォルトの名無しさん
2015/01/17(土) 19:00:09.58ID:P4fG3Fn9 carとfuncallの違いはなんですか?
と聞いてるようなものなんだが
と聞いてるようなものなんだが
181デフォルトの名無しさん
2015/01/17(土) 19:12:25.44ID:73qLESVw182デフォルトの名無しさん
2015/01/17(土) 19:40:12.57ID:CWvWtJ6X http://qiita.com/mandel59/items/8f9111143aea94e7b363
ここで同じだと言っている人がいて気になったので
ここで同じだと言っている人がいて気になったので
183デフォルトの名無しさん
2015/01/17(土) 19:49:45.85ID:P4fG3Fn9 この板のいくつかの場所で言われてるけど
その人ちょっとおかしいんだよ
真に受けない方がいい
その人ちょっとおかしいんだよ
真に受けない方がいい
184デフォルトの名無しさん
2015/01/17(土) 20:03:49.61ID:CWvWtJ6X いえこの人がおかしいのは知ってますし真に受けるつもりもありません
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
ただ思えばそれらの違いを言葉にできるほどの認識がなかったので
185デフォルトの名無しさん
2015/01/17(土) 20:30:19.29ID:P4fG3Fn9186デフォルトの名無しさん
2015/01/17(土) 21:08:56.14ID:CWvWtJ6X 適用は評価の前段階みたいな感じでいいんでしょうか
187デフォルトの名無しさん
2015/01/17(土) 21:14:39.87ID:X3AOWrxV あのう、きちっとしたテキストを一冊読んだほうがいいよ
188デフォルトの名無しさん
2015/01/18(日) 02:14:00.68ID:m7MxJZlS (eval `(funcall ,f ,@args))と(apply f args)が同じっていいたいのかね?
ようわからんけど…
ようわからんけど…
189デフォルトの名無しさん
2015/01/18(日) 07:43:52.27ID:FaVyQjad evalはシンボルのリストを読み込んでその内容を実行する。
applyは既に評価されて定義された関数を適用すること。
applyは既に評価されて定義された関数を適用すること。
190デフォルトの名無しさん
2015/01/18(日) 07:49:09.26ID:oexYoD6M eval だけでいいのに何でapplyが重視されてるんだ?、と思ったら、SICPを読もう
191デフォルトの名無しさん
2015/01/18(日) 09:28:02.82ID:8C45mKK2192デフォルトの名無しさん
2015/01/19(月) 01:45:04.66ID:wgUa3gjO emacsのslimeについて質問です
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
slime-autodoc-mode
slime-autodoc-space
うざいので無効にしたいのですが
どうにかならないですか
193デフォルトの名無しさん
2015/01/23(金) 08:44:20.17ID:EcShhbHE adw-chartingって(ql:quickload :adw-charting)しただけじゃ
使えないんでしょうか
使えないんでしょうか
194デフォルトの名無しさん
2015/01/23(金) 12:42:39.31ID:iqBUzDAo >>193
エスパーだけど、サブシステムに分かれてるから
(ql:quickload :adw-charting-vecto)
しないとサンプルが動かないという意味ではそうなのでは
試した手順とマニュアル読んで分からなかった箇所を具体的に書いたら?
(adw-charting:with-pie-chart (300 200)
(adw-charting:add-slice "A" 5.0d0)
(adw-charting:add-slice "B" 2.0d0)
(adw-charting:save-file "minimal-pie-chart.png"))
は配布状態で動いたよ
エスパーだけど、サブシステムに分かれてるから
(ql:quickload :adw-charting-vecto)
しないとサンプルが動かないという意味ではそうなのでは
試した手順とマニュアル読んで分からなかった箇所を具体的に書いたら?
(adw-charting:with-pie-chart (300 200)
(adw-charting:add-slice "A" 5.0d0)
(adw-charting:add-slice "B" 2.0d0)
(adw-charting:save-file "minimal-pie-chart.png"))
は配布状態で動いたよ
195デフォルトの名無しさん
2015/01/23(金) 13:23:05.37ID:EcShhbHE196デフォルトの名無しさん
2015/01/23(金) 21:36:01.97ID:F+B+etzd 嬉しいのでチラシの裏書きます
The Little Schemer二回読了!!
勉強になった
次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます
The Little Schemer二回読了!!
勉強になった
次は「初めての人のためのLisp」を読もうと思い購入済みでもあるのだけれども予定変更
The Seasoned SchemerというThe Little Scemerの続編でthe natures of
computingの理解を目ざすものがあったのでそれにした。
それ終えたら「初めての」かLand of LispかOn Lispやろ
本来の目的ClusureでAndroid用の好みのワンベインOutlineプロセッサつくるためにLisp系はじめたけど楽しいからそれはさておき基礎の基礎に深く分け入っていきます
197デフォルトの名無しさん
2015/01/23(金) 22:50:04.93ID:NpwsZqSV 再帰で考えてしまって動的計画法が使いこなせない!
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
全マス埋めていく感覚が、全ノード探索と分かってはいるんだが…
198デフォルトの名無しさん
2015/02/07(土) 08:01:14.41ID:tz9pe5xW http://anime.scripts.mit.edu/images/mitinanime_lain3.jpg
Serial Experiments LainではLispのコードのシーンがあるらしい
Serial Experiments LainではLispのコードのシーンがあるらしい
199デフォルトの名無しさん
2015/02/07(土) 08:39:22.93ID:R2/oFkGJ Lain か…懐かしいなぁ
200デフォルトの名無しさん
2015/02/07(土) 09:32:47.61ID:FOHLYtkF Life Gameのソースっぽい
201デフォルトの名無しさん
2015/02/07(土) 09:52:15.98ID:OMRZtff8 D-WaveのOSがCommonLispってマジ?
202デフォルトの名無しさん
2015/02/07(土) 10:43:02.43ID:Ei/z8not203デフォルトの名無しさん
2015/02/07(土) 10:51:45.09ID:FOHLYtkF204デフォルトの名無しさん
2015/02/07(土) 12:02:20.85ID:saCOOwny205デフォルトの名無しさん
2015/02/07(土) 13:26:07.79ID:yKpU9aut その書き写したソース見たい
206デフォルトの名無しさん
2015/02/07(土) 13:32:26.38ID:FOHLYtkF207デフォルトの名無しさん
2015/02/07(土) 15:06:09.69ID:yKpU9aut 見れた
配列をbit単位で操作するのは効果あるのかな
配列をbit単位で操作するのは効果あるのかな
208デフォルトの名無しさん
2015/02/07(土) 15:20:36.83ID:9qdU9S5T >>207
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
1991年だからメモリ贅沢に使うのに躊躇したんじゃなかろか?
209デフォルトの名無しさん
2015/02/07(土) 15:36:59.11ID:6rQaurxf 一バイトは金のひとすくい
しません、させません、ビットの無駄使い
おかげでビルも立ちました
しません、させません、ビットの無駄使い
おかげでビルも立ちました
210デフォルトの名無しさん
2015/02/08(日) 23:41:38.36ID:C4tJwi8l211デフォルトの名無しさん
2015/02/09(月) 11:04:57.10ID:inFNj6Hs212デフォルトの名無しさん
2015/02/09(月) 11:50:04.98ID:wTON1hpK 設定ミスでそうなっただけってどっかで見た気がする
213デフォルトの名無しさん
2015/02/09(月) 11:55:17.59ID:gnp8i06N オープンソースにせずとも問題を解決出来る、って意味分らないね
214デフォルトの名無しさん
2015/02/09(月) 18:29:24.33ID:Ysp4l3Zv ttp://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
215デフォルトの名無しさん
2015/02/09(月) 18:35:56.82ID:yftdnQui うぉー!
FORTLANと同席かい!!
FORTLANと同席かい!!
216デフォルトの名無しさん
2015/02/09(月) 22:47:33.62ID:JzEtMJoP FORTRANじゃあーい!!
217デフォルトの名無しさん
2015/02/09(月) 22:57:24.39ID:HcxTGLiU Ratforってあったよね
218デフォルトの名無しさん
2015/02/09(月) 23:47:36.78ID:JzEtMJoP Rational Fortran
初代プログラミング作法(programming tools)のやつね。
初代プログラミング作法(programming tools)のやつね。
219デフォルトの名無しさん
2015/02/09(月) 23:55:00.91ID:bwEZbR4B220デフォルトの名無しさん
2015/02/10(火) 17:05:14.42ID:Xy5S1/Fv >> 218
「ソフトウェア作法」ね
http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BD%9C%E6%B3%95-Brian-W-Kernighan/dp/4320021428/ref=pd_sim_b_3?ie=UTF8&refRID=00X1H3NNRVZ5P3BCDTMQ
「ソフトウェア作法」ね
http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BD%9C%E6%B3%95-Brian-W-Kernighan/dp/4320021428/ref=pd_sim_b_3?ie=UTF8&refRID=00X1H3NNRVZ5P3BCDTMQ
221デフォルトの名無しさん
2015/03/07(土) 00:42:51.80ID:1AfT/MV4 LET OVER LAMBDAを読んでいるのですが
しょっぱなで出てくるマクロdefmacro/g!が動きません。
(defmacro defmacro/g! (name args &rest body)
(let ((syms (remove-duplicates
(remove-if-not #'g!-symbol-p
(flatten body)))))
`(defmacro ,name ,args
(let ,(mapcar
(lambda (s)
`(,s (gensym ,(subseq
(symbol-name s)
2))))
syms)
,@body))))
(macroexpand-1
'(defmacro/g! nif (expr pos zero neg)
`(let ((,g!result ,expr))
(cond ((plusp ,g!result) ,pos)
((zerop ,g!result) ,zero)
(t ,neg)))))
;=>(DEFMACRO NIF (EXPR POS ZERO NEG) (LET () `(LET ((,G!RESULT ..
(flatten '`(let ,g!result))が
(SB-INT:QUASIQUOTE LET ,G!RESULT)になるので
,g!resultがremove-if-notを通り抜けられないのが理由でしょうか。
sbcl1.2.7です。動かす方法はありますか?
しょっぱなで出てくるマクロdefmacro/g!が動きません。
(defmacro defmacro/g! (name args &rest body)
(let ((syms (remove-duplicates
(remove-if-not #'g!-symbol-p
(flatten body)))))
`(defmacro ,name ,args
(let ,(mapcar
(lambda (s)
`(,s (gensym ,(subseq
(symbol-name s)
2))))
syms)
,@body))))
(macroexpand-1
'(defmacro/g! nif (expr pos zero neg)
`(let ((,g!result ,expr))
(cond ((plusp ,g!result) ,pos)
((zerop ,g!result) ,zero)
(t ,neg)))))
;=>(DEFMACRO NIF (EXPR POS ZERO NEG) (LET () `(LET ((,G!RESULT ..
(flatten '`(let ,g!result))が
(SB-INT:QUASIQUOTE LET ,G!RESULT)になるので
,g!resultがremove-if-notを通り抜けられないのが理由でしょうか。
sbcl1.2.7です。動かす方法はありますか?
222デフォルトの名無しさん
2015/03/07(土) 00:48:06.97ID:1AfT/MV4 (defun g!-symbol-p (s)
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))
(and (symbolp s)
(> (length (symbol-name s)) 2)
(string= (symbol-name s)
"G!"
:start1 0
:end1 2)))
223デフォルトの名無しさん
2015/03/07(土) 07:09:08.52ID:mW7RcyXy コードコピペしたらちゃんと動いたけど
flattenが間違ってんじゃないかな
flattenが間違ってんじゃないかな
224デフォルトの名無しさん
2015/03/07(土) 16:01:02.06ID:yXgYIHFE 試しにwindows版のsbcl1.2.7入れてやってみたが
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
確かに動かないな、これ
windows版ccl1.10ではちゃんと動いた
こういうことってあるんだな
225デフォルトの名無しさん
2015/03/07(土) 16:17:29.95ID:IuS2RJP4 clisp+alexandria:flattenでやってみたけど動くよ
226デフォルトの名無しさん
2015/03/07(土) 16:50:40.73ID:yXgYIHFE debianのsbcl1.0.57.0ではちゃんと動く
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
今度は普段ccl1.10で使ってるslimeでsbcl1.2.7動かしてみたが
やっぱり動かん
227デフォルトの名無しさん
2015/03/07(土) 19:54:37.09ID:sXXhs6bf228デフォルトの名無しさん
2015/03/08(日) 14:36:36.18ID:AqwQTNqO Common Lisp 素人です.
SSL って cl+ssl が標準的なんですかね?
以下のコードが動かないんですが, これはうちの環境が悪いんでしょうか?
```
(ql:quickload :usocket)
(ql:quickload :cl+ssl)
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock))))
(unwind-protect
(progn
(format sock-stream "? CAPABILITY"))
(usocket:socket-close sock)))
```
Debugger:
```
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-STRING (3)>
when called with arguments
(#<CL+SSL::SSL-STREAM
for #<FD-STREAM
for "socket 192.168.1.60:46384, peer: 64.233.187.109:993"
{1005B13083}>>
"? CAPABILITY" 0 NIL).
[Condition of type SIMPLE-ERROR]
```
cl+ssl の streams.lisp では stream-write-byte についてしか defmethod してないけど,
普通はこれで動くもんなんです?
SSL って cl+ssl が標準的なんですかね?
以下のコードが動かないんですが, これはうちの環境が悪いんでしょうか?
```
(ql:quickload :usocket)
(ql:quickload :cl+ssl)
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock))))
(unwind-protect
(progn
(format sock-stream "? CAPABILITY"))
(usocket:socket-close sock)))
```
Debugger:
```
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION STREAM-WRITE-STRING (3)>
when called with arguments
(#<CL+SSL::SSL-STREAM
for #<FD-STREAM
for "socket 192.168.1.60:46384, peer: 64.233.187.109:993"
{1005B13083}>>
"? CAPABILITY" 0 NIL).
[Condition of type SIMPLE-ERROR]
```
cl+ssl の streams.lisp では stream-write-byte についてしか defmethod してないけど,
普通はこれで動くもんなんです?
229デフォルトの名無しさん
2015/03/08(日) 14:39:57.84ID:4UYhxwse SBCLのバッククォートは構造体に変換されるようになったから
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
LET OVER LAMBDAにあるような、バッククォートを含むコードの
flattenによるコードウォークはSBCLだと動かなくなったって事か。
ダメじゃんSBCL〜
こんなバッククォートの仕様、CLTL2満たしてるのか?
230228
2015/03/08(日) 19:54:56.42ID:AqwQTNqO 解決したので報告です. :external-format を指定して flexi-streams を使えば良いようです.
```
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock) :external-format '(:latin-1 :eol-style :crlf))))
(unwind-protect
(progn
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
(format sock-stream "? CAPABILITY~%")
(force-output sock-stream)
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
)
(usocket:socket-close sock)))
```
=>
```
* OK Gimap ready for requests from xxx.xxx.xxx.xxx hogehoge
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
```
```
(let* ((sock (usocket:socket-connect "imap.gmail.com" 993 :protocol :stream :timeout 60))
(sock-stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream sock) :external-format '(:latin-1 :eol-style :crlf))))
(unwind-protect
(progn
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
(format sock-stream "? CAPABILITY~%")
(force-output sock-stream)
(listen sock-stream)
(format *standard-output* "~%~a~%" (read-line sock-stream nil))
(force-output *standard-output*)
)
(usocket:socket-close sock)))
```
=>
```
* OK Gimap ready for requests from xxx.xxx.xxx.xxx hogehoge
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
```
231デフォルトの名無しさん
2015/03/17(火) 01:48:34.28ID:gpmCn1O6 (変数 値)のリストと式が与えられた状態で、変数を値に束縛した環境で式を評価したいのですが、良い方法がわかりません
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
現状では次のように実装しています
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(eval `(let ,bindings ,form)))
実際にはformに対してbindingsを変えたものが何度も呼ばれます
また、formは複雑なものも想定します
他にいい方法はありますでしょうか?
232デフォルトの名無しさん
2015/03/17(火) 10:47:28.60ID:Zf13xXA9 (let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(eval form)))
とかかなあ
もしくはformを関数にしてしまうのがいいのかな
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(let ((thunk (coerce `(lambda () ,form) 'function)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(funcall thunk))))
bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(eval form)))
とかかなあ
もしくはformを関数にしてしまうのがいいのかな
(let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(let ((thunk (coerce `(lambda () ,form) 'function)))
(progv
(mapcar #'car bindings)
(mapcar #'cadr bindings)
(funcall thunk))))
bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 [お断り★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★3 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★4 [少考さん★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 [少考さん★]
- 【芸能】粗品 「間違ったお笑いの常識が放送されている」「テレビ見てる素人って、笑い声でしか面白いかどうか判断できない。可哀想」 [冬月記者★]
- 他サポ2025-302
- 阪神競馬5回4日目 阪神JF
- 【NJPW】新日本プロレスワールド part.2431
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★1
- 中山競馬5回4日目その2カペラエス
- 中京競馬5回3日目
- 【悲報】日本人の「旅行離れ」が深刻化。愛国者は今すぐ旅行に行け! [834922174]
- 中国、日本人メンバーがいるK-POPアイドルの行事を中止 [329271814]
- ネット民「チー牛がフェミニストになりすまして草津町長を叩いていた」「フェミニストの正体は日本会議」「弱者男性が騒いでいた」 [932029429]
- 維新幹部「高市さん懇願します…解散しないように懇願します…」 [931948549]
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- 鹿せんべいくれ
