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:FJokPHUt202デフォルトの名無しさん
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だけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど)
インタプリタかなにか作ってるの? 👀
233デフォルトの名無しさん
2015/03/17(火) 10:48:46.17ID:Zf13xXA9 なぜか変な絵文字が入った…
234デフォルトの名無しさん
2015/03/17(火) 13:59:09.21ID:gpmCn1O6 >>232
progvで動的変数が作られるのは知りませんでした
formの関数化も良さそうですね
mapcarによるコンシングはデータ構造を工夫してなくせそうです
だいぶパフォーマンスが改善されそうです。ありがとうございます
ある言語のサブセットを作ってます
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では名前空間の汚染はあまり気にしなくて良いので多用する必要はない」とレスされ、
るそうですが、
なぜ気にしなくて良いのですか?
私家版、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 の方がよさそーだ‥
comon lisp よりも scheme の方がよさそーだ‥
237デフォルトの名無しさん
2015/03/26(木) 21:35:12.89ID:RYFxX3Lv >>235
なんかコイツ自身レベルが低そうだ
なんかコイツ自身レベルが低そうだ
238デフォルトの名無しさん
2015/03/31(火) 15:33:38.54ID:Wn1BJkY4239デフォルトの名無しさん
2015/04/03(金) 04:59:16.54ID:OpTcNNTw 元スレで作った人に聞けばいいのでは…
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
たぶん単純に名前空間が関数と変数で分かれてるってだけの話だと思うけど
240デフォルトの名無しさん
2015/04/04(土) 21:18:43.12ID:+yfNqqsV 初歩的な質問ですいません。
CommonLispをCentos6にインストールできないんですが
単純にyum 〜では駄目なんですか?
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 しかチェックしてないみたいに書いてあるけど。
これって 32 bit Windows でも動く?
公式には 64 bit しかチェックしてないみたいに書いてあるけど。
243ドリル優子
2015/04/20(月) 17:48:30.95ID:pJtoLIOS244デフォルトの名無しさん
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:1poVLIgC247デフォルトの名無しさん
2015/05/04(月) 14:43:15.18ID:wppJPNh0248デフォルトの名無しさん
2015/06/05(金) 01:19:51.77ID:06+5DuOz http://www.infoq.com/jp/news/2015/06/lispworks-mobile-runtime
Lispworks がios Android 用出したけど既存のmoclとの比較がほしい
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
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
日本語入れると、PARSE-NAMESTRING: syntax error in filename
と出るのですが、どのようにしたら、
日本語のディレクトリって作成できますか?
251デフォルトの名無しさん
2015/06/19(金) 02:49:41.26ID:xcKv4OTq >>250
処理系によって違ってくるから何を使ってるか教えて
処理系によって違ってくるから何を使ってるか教えて
252デフォルトの名無しさん
2015/06/19(金) 12:32:36.15ID:sjap9hEB253デフォルトの名無しさん
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になれますか。
説教してください。頓首。
わたしは 太郎 です。
趣味は 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)))
(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)))
256254
2015/07/09(木) 18:43:04.87ID:dOwpf5X7257254
2015/07/10(金) 07:34:53.35ID:f1nU5bVE いろいろ参考書を買ったけど、
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
PAIPで禁欲的にやるのが一番いいような気がしている。
おすすめの書籍とか読む順番とかあったら教えてくれませんか。
お願いいたします。
258デフォルトの名無しさん
2015/07/13(月) 12:29:38.83ID:mO7PTTVX あるサイトに
(reduce #'+ '(1 2 3))
;=> 7
6じゃないのですか?
(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
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なんにも知らん。
買ったからには勉強せねば。
実はまだlispなんにも知らん。
264はちみつ餃子 ◆8X2XSCHEME
2015/09/15(火) 05:52:09.24ID:e2MtLkqs 知らんのにいきなり買うとか豪儀やな
265デフォルトの名無しさん
2015/09/15(火) 10:02:52.02ID:qUwxVhtE ならリスプの統合環境と言っていいか、そこは怪しいが
zxzzyあたりからやりゃ良いのに
と思う俺様
ま、いいけどな
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
とエラーがでます。どうしてなのでしょう?教えてください。
お願いします。
(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))))
(defun fact (n)
(cond ((= n 0) 1)
(t (* (fact (1- n))
n))))
268デフォルトの名無しさん
2015/09/22(火) 23:27:01.08ID:zMYL44aC269はちみつ餃子 ◆8X2XSCHEME
2015/09/23(水) 01:17:09.38ID:Z8UtHxkJ270デフォルトの名無しさん
2015/09/23(水) 02:22:31.73ID:2zCL7K2h >>269さん
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
教えていただいてありがとうございます。
質問をしてよかったと思いました。教えていただいたものを
知りませんでした。
関数には引数に1-をいれるというオプションのようなものが付く
という仕様になっているということがわかりました。
では
271デフォルトの名無しさん
2015/09/23(水) 02:25:45.54ID:2zCL7K2h >>263
30万円くらいですか。すごいですね
30万円くらいですか。すごいですね
272はちみつ餃子 ◆8X2XSCHEME
2015/09/23(水) 03:31:44.34ID:Z8UtHxkJ273デフォルトの名無しさん
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
ですね
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が開けません
パスは正しいし他の言語からもリンクできるライブラリですが、
何処がおかしいのでしょうか?
(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:KkwgeqRl276274
2015/10/01(木) 02:50:50.32ID:tesABx2F 自己レスですが、CLISPで散々いろいろ試したけどどうにもならなかったので
SBCLに変えてみたらまともに動くようになりましたので報告
SBCLに変えてみたらまともに動くようになりましたので報告
277デフォルトの名無しさん
2015/10/03(土) 13:14:55.68ID:IK0Y+UBj perl の perldoc
python の pydocに相当するローカルのドキュメントは何ですか?
シンボルを調べるのに
ネットを通しているので2秒間の通信があったり、
通信可能であることに依存しているのが弱点です
'http://clhs.lisp.se/Front/X_AllSym.htm'
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.*に追加するか
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 ... 等と同様に呼び出したい
ひょっとして >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)))
>>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:FtwpBXng283282
2015/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.")
#!/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 ttps://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のコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
ホフスタッターのメタマジックゲームのlispの章を読んで
lispやりたいと思ったプログラミング初心者だけど、
emacsでmaterialというカラーテーマにして
フォントをRicty Diminished の斜体にしてから
全画面でlispのコードの見たらとても美しい言葉に見えた
美しいとそれだけでまた見たくなるから
学習意欲を保つためにはよいと思った。
293デフォルトの名無しさん
2015/10/22(木) 23:40:53.70ID:rUneY+ez294デフォルトの名無しさん
2015/10/24(土) 04:48:56.04ID:sSEtncll295デフォルトの名無しさん
2015/10/26(月) 23:33:50.22ID:cnZS0lks296デフォルトの名無しさん
2015/10/27(火) 04:19:42.73ID:qSWumRv1 >>294
「land of lisp」という本にhaskellいいみたいなこと書いてあったけど、
haskellってどうなのかな
common lispとhakellもやったことがあることがある人からしたら。
lispの括弧と前置記法って一貫している感じがして好き。
「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/
なんかだ好き
-<> はダイアモンドの杖だって
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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★8 [ぐれ★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- いじめ後遺症 15年前のトラウマに苦悩する当事者「夢の中に出てくる」「された側は一生ものの傷」 [♪♪♪★]
- 【高市速報】毎日の調査で衆院投票先、自民2.4維新7.2立憲14.5国民6.0公明8.4参政4.8共産21.7れいわ19.3保守1.2社民3.6みらい10.8 [369521721]
- 【実況】博衣こよりのえちえちダンガンロンパ6🧪
- 【実況】博衣こよりのえちえちダンガンロンパ5🧪
- 【正論】検察「山上よ、どんな事情があろうと暴力が許されない」 [442080748]
- 🏡パン🍞つー✌まる👌見え👊😅👊
- 実写映画「ストリートファイター」のキャラアートが公開。何か知らん人がいる…… [624898991]
