【入門】Common Lisp その11【質問よろず】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2014/09/21(日) 22:49:21.73ID:FJokPHUt
Lisp Schemeスレでは恥ずかしくて聞けないようなことを質問したり、
Lisp Schemeスレの話題は高度すぎて気後れする人が話しあったり。
それ以外でもCommon Lispについての話題なら歓迎します。

ま、ゆっくりやりましょう。

「いいものの本質は、いかなる時代においても変わらない」byパワーズ

■前スレ
【入門】Common Lisp その10【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1361341876/

■Wiki
http://wiki.fdiary.net/lisp/ (id:guest pass:cl)
http://cl.cddddr.org/
http://tips.lisp-users.org/common-lisp/
2016/09/23(金) 21:27:52.82ID:y9ZJGzw+
へ〜
403デフォルトの名無しさん
垢版 |
2016/09/24(土) 05:38:26.18ID:nvb+KqdK
関数型のブームは来てるけど
HaskellとかScalaに押されてない?
2016/09/24(土) 08:10:52.77ID:VAyZ/8kj
GNU makeやgdbにguileがリンクされるようになったよ
もう少しの辛抱や
2016/09/24(土) 17:22:03.97ID:ryMydsM5
Common Lispはマルチパラダイムの言語だ
goto(go)すら存在する
2016/09/25(日) 21:24:57.99ID:HvtwLO9L
>>405
goはマッカーシーのlispからあるけどお。すらってなにい?
2016/09/25(日) 22:23:20.95ID:eD42xPoY
すらまっぱぎ
2016/09/26(月) 15:46:42.52ID:b0MmmDW8
>>406
Common LispのスレでCommon Lispと言って何か問題あるか?
2016/10/05(水) 23:25:20.08ID:C9cv9Gl5
>>366
Steeleが互換性考えて別にしたけど
やっぱり一緒にしとけばよかったーと後に述懐していた
2016/10/12(水) 15:59:00.20ID:RYqLfx9/
その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
2016/10/12(水) 16:33:55.36ID:8kMwO8W7
今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。
2016/10/12(水) 16:34:06.22ID:M1jDwzz2
#fと'()の分離はなんでだったんや?
2016/10/12(水) 17:40:21.14ID:RYqLfx9/
それはSchemeスレでする話だな
2016/10/13(木) 20:07:13.89ID:xgGYMiuu
0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
2016/10/13(木) 22:52:04.77ID:C1I1uhJH
いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。
2016/10/15(土) 20:05:40.07ID:HnVxap0b
デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。
417デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:14:50.68ID:r9fJMQJL
ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
418デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:17:07.36ID:r9fJMQJL
>>417の書き込みの訂正

LEPLじゃなくてREPLです。
2016/10/16(日) 21:52:46.83ID:8ptZ6tcn
うちはSBCLだけど、たぶんloadでできる
$ cat hoge.lisp
(defun twice (f x) (funcall f (funcall f x)))
(defun dbl (x) (* x 2))
$ sbcl
This is SBCL 1.3.6, an implementation of ANSI Common Lisp.
(略)
* (load "hoge")

T
* (twice #'dbl 3)

12
420デフォルトの名無しさん
垢版 |
2016/10/17(月) 00:33:48.91ID:sDQTJcTS
>>419
おおおお
出来ました!!!
サンプルプログラムまで書いていただきありがとうございます。
Lispを初めて日が浅いのですが、とても分かりやすかったです。
2016/10/17(月) 09:04:24.02ID:QD9IQMc+
clisp の場合は
clisp a.lisp
という風にファイル名を指定するだけでも実行できるよ
この場合REPLとは異なり、特に何もしなくても自動的に終了する

sbcl には同様のことをする --script オプションがある
422デフォルトの名無しさん
垢版 |
2016/10/17(月) 10:07:13.56ID:sDQTJcTS
>>421
なるほど、そういう方法もあるんですね。参考になります。
2016/10/18(火) 11:30:07.17ID:1ksiQ1k/
多分emacsでSLIME使うのが一番捗る。ある程度やって、もっと環境良くしたいと思ったら導入してみるといい
ファイルに書きなぐって一部だけ評価するとかできる
2016/10/23(日) 13:47:10.52ID:crofOT9u
(defparameter param #\a)
を生成するマクロ
(defmacro ch! (ch)
`(defparameter param #\,ch))
が、動かないのはなぜでしょうか?
教えて下さい。
425デフォルトの名無しさん
垢版 |
2016/10/25(火) 08:55:35.68ID:dAAkpCke
424です。
どなたか、教えてください。
2016/10/25(火) 23:40:26.35ID:NdRXRry8
入力マクロを何と心得ておる
2016/10/26(水) 01:17:49.11ID:Z8ZLd5j0
>>425
面白い。426のいうとおり
リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。
(defmacro ch! (ch)
(read-from-string (format nil
428デフォルトの名無しさん
垢版 |
2016/11/01(火) 15:37:56.06ID:d/Emm7ZQ
424です。
>>426
ご返答ありがとうございます。
「入力マクロを何と心得ておる」
リードマクロの事でしたら不勉強でした。
1文字づつ地を這う様なカスタマイズに思えて
lispっぽさが感じられず読む気が無くなるんです。
>>427
書きかけの続きを
ぜひ読みたいです。おねがいします。

macbookのOSX10.6で
iterm上のvimで選択したS式をscreenを介して
もう一つのitermで動くsbcl(又はclisp)に評価、
出力させるのを目標にしています。
なにか知っている事があればよろしくおねがいします。
2016/11/02(水) 05:41:35.19ID:ydCUsA37
>>428
割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/
vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない)

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

#って感じなEmacsと入水心中の俺 orz
#Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ
2016/11/02(水) 16:50:18.95ID:Zl1DvHRz
SLIMEっぽいのは一応あるのね
http://www.vim.org/scripts/script.php?script_id=2531
2016/11/22(火) 20:43:31.30ID:KvJ3xe8B
独り言だが
ClojureとClozure CLってべつものなのか
Clozure CLはjava関係ないのね
2016/12/18(日) 08:12:54.17ID:H5VGjwqC
conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか?
simple-conditinとかにはあるのに
2016/12/18(日) 15:52:29.97ID:odpeYpuF
多重継承だから
2017/01/11(水) 12:56:06.91ID:Dj+amy8+
生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?

ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。
2017/01/11(水) 13:08:56.90ID:oS3M3jOK
Win機で開発するのが間違ってる
2017/01/11(水) 13:41:55.71ID:CpReZJmf
『プログラムの保存』とは一体……?
2017/01/11(水) 17:25:20.73ID:cn/qBmTu
BASICのSAVEか…
2017/01/11(水) 22:14:49.39ID:qtQ06epR
>>437
えっ ちょっと待って
今ラジカセ用意するから...間違えてLOADって打たないでね
2017/01/11(水) 22:20:44.82ID:LKP7w0Oz
www
2017/01/12(木) 00:33:15.10ID:ON8wOxBk
>>436
RPLだと関数も変数も必ずファイルとして存在する。
RPLの祖先のForthも同じかもしれない。
2017/01/12(木) 06:54:05.10ID:pNuRGDWl
ほしいのは、emacs+slime環境?
あるいはaclとかlispworks
2017/01/12(木) 09:59:06.51ID:wWrcziVQ
REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い
2017/01/12(木) 10:32:26.76ID:UNGksYU7
>>442
emacs環境だとLispよりもemacsの勉強になってしまうからなあ
2017/01/12(木) 13:02:34.77ID:bT7YUbCB
それならlemでいいんじゃない?
2017/01/12(木) 21:49:43.62ID:42JGZ5hK
xyzzyで
2017/01/13(金) 04:08:54.48ID:BzdeAQwY
>>442
>>443
同意、最初からEmacsは難しすぎる
LispよりEmacsの方が難しいくらい
2017/01/13(金) 11:27:29.66ID:QaVc2fKW
clispの開発が終わってしまったし
2017/01/13(金) 11:29:56.98ID:QaVc2fKW
>>442
emacsのlispってemacsのカスタマイズ用途なのでは?
アプリ作成用のlispがまだあるのかどうかは知らないが
2017/01/16(月) 16:21:04.42ID:qEdXmsgN
>>447
その情報のソースってどこかにある?
CLISP自体かなり前から更新されてなかったから終わったと言っても今更感があるけど…
2017/01/17(火) 11:28:47.60ID:sDlYunh0
>>449
長年更新していないので、オワタ可能性は高くね?
451デフォルトの名無しさん
垢版 |
2017/01/18(水) 14:32:40.83ID:+0XE4PkH
Lispの仕事ってまだあるのだろうか?
古いシステムの保守程度?
2017/01/18(水) 23:04:07.71ID:JFSfmo96
どっかの会社で、common lispでやっているところがあったはず

完全に廃れた感じはしないな
2017/01/19(木) 09:03:33.76ID:Gh/NlR3g
>>452
どんな仕事なんだろう?
2017/01/19(木) 09:38:33.97ID:uhfgjGGl
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
2017/01/19(木) 12:17:01.00ID:TbaqbQZk
Lispと言えば、研究用途かWebサーバーで使うようなイメージしかないわ
456デフォルトの名無しさん
垢版 |
2017/01/19(木) 21:19:55.80ID:gCwd8P05
お前の抱えるイメージなんかに誰か興味を持つと思ったのか?
457デフォルトの名無しさん
垢版 |
2017/01/20(金) 00:42:56.98ID:rsnxDR2c
>>456
でも実際に何に使われているんだ?
研究専用言語だと思っていたのだが。
2017/01/20(金) 10:12:07.41ID:Nvso2zBq
>>456 みたいなBOTに使われているという実例
2017/01/20(金) 11:53:33.16ID:coMO3q54
LispはUNIX以外で実用的に使うのは無理なのかねえ?
2017/01/20(金) 12:28:28.14ID:SVUCN/eR
スレチだからlisp scheme スレでやれよ
http://echo.2ch.net/test/read.cgi/tech/1426481152
もっと釣れるぞ
2017/01/20(金) 12:48:36.11ID:8z9BkdPJ
Lisp はWebサーバ用の言語
2017/01/20(金) 19:20:31.02ID:XUVXYG0t
lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど
2017/01/21(土) 06:13:30.03ID:mYUPWk0d
>>459
https://www.amazon.co.jp/dp/4274065979/
464デフォルトの名無しさん
垢版 |
2017/01/21(土) 11:57:50.59ID:0dQCqgGa
>>463
そんな読み物で何が分かるんだ?
2017/01/21(土) 16:17:15.46ID:UaDisbHg
roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない
こんな糞アプリ使えるかよ
2017/01/21(土) 16:57:44.64ID:QA6O+rWe
ここで聞いてももう駄目
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い
2017/01/21(土) 19:07:36.86ID:1H01QVS7
ttps://github.com/roswell/roswell の Installing scripts に
$ ros install fukamachi/qlot # will install it from the GitHub
って書いてあるけど知りたいのはこれじゃないってこと?
2017/01/22(日) 10:57:47.88ID:b2xXmV6K
>>404
言語組み込み解禁で誰かがluaに変えると予想
2017/01/29(日) 02:04:07.29ID:jpDTpmEM
Land of lispの動画見て来ますた
2017/01/29(日) 22:21:22.72ID:QjLLrAQA
>>469
いらっしゃーい
2017/01/30(月) 02:40:54.54ID:mBiYg09G
>>469
あの動画楽しいよね。
472デフォルトの名無しさん
垢版 |
2017/02/01(水) 13:13:45.46ID:uPNpYJZg
わかる人いたら教えて下さい。
iterm2でrepl(sbcl)を最初から起動させようと
replというプロファイルを作り
.bachrcに

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

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

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

どうしたら良いのでしょうか。
ちなみに再度sbclと入力するといつも通り起動します。
2017/02/03(金) 00:03:57.75ID:uSnzwgyQ
コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか?
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない
2017/04/05(水) 00:10:33.71ID:dD5KS/CH
Common lispからpythonの特にnumpy関係のライブラリ使う方法ないのでしょうか?
2017/04/05(水) 03:18:41.90ID:9ywW0Xq5
>>474
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?
2017/04/08(土) 15:56:08.90ID:Uc8a2Yv6
Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ

Sparse matrix計算も出来ないみたいだし
2017/05/03(水) 04:46:48.46ID:94GhuONY
Cのプログラムがcuda使うと100倍速くなるのに
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?
2017/05/09(火) 20:10:22.37ID:v4p9YapF
>>477
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う
2017/05/09(火) 20:19:48.11ID:v4p9YapF
>>476
密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。

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

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

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

(defmacro readconfig (filename)
`(progn
,@(loop for i in
(with-open-file
(s filename :direction :input :external-format :utf-8)
(loop :for line := (read-line s nil) :while line :collect line))
collect
(let* ((l (split-sequence:split-sequence #\= i))
(a (read-from-string (concatenate 'string "*" (car l) "*")))
(b (second l)))
`(defparameter ,a (read-from-string ,b))))))
2017/05/19(金) 21:20:45.65ID:/bO1sGez
引数が評価されてないね
2017/05/19(金) 21:49:23.53ID:/bO1sGez
>>480
macroexpand で展開してみた?
483デフォルトの名無しさん
垢版 |
2017/05/19(金) 21:58:39.33ID:N5yG+fmp
>>482
concatenateの方はエラーがでます
普通に文字列を渡せばうまくいくのですが
484デフォルトの名無しさん
垢版 |
2017/05/20(土) 00:30:38.53ID:ZKXptbMB
>>480
どうしてマクロにしたの?初心者だから?
2017/05/20(土) 01:15:39.37ID:I6lRK30f
>>484
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
486デフォルトの名無しさん
垢版 |
2017/05/20(土) 01:30:33.54ID:I6lRK30f
問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
487デフォルトの名無しさん
垢版 |
2017/05/21(日) 06:36:36.81ID:oB72Q+Da
OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ
488デフォルトの名無しさん
垢版 |
2017/05/21(日) 06:50:43.54ID:oB72Q+Da
typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?
489デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:45:11.09ID:jy5dosQP
>>488
common lispのコンパイラでも型推論くらいするの知ってるか?
それがどう駄目なのか,どうしたいのかをまず書けよ.
2017/05/22(月) 06:10:33.21ID:Suxf7jk2
sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った
491デフォルトの名無しさん
垢版 |
2017/05/22(月) 19:06:44.55ID:cqwt5c+d
sbclのdescribeで
https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp
derived-typeの情報だけ取り出して他の変数に格納したいのに
うまくいかない
streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか
2017/05/25(木) 21:17:35.11ID:1hi1bgKK
>>490
> sbclのtheのdescribe
が意味するところが分からない.
2017/05/31(水) 17:40:47.18ID:PPe5oyts
Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか

c言語の解析するサンプルコードなら他のでも良いです
2017/07/09(日) 02:25:04.88ID:ryDnV29I
誰か知っていれば教えてほしいのですが
LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく
できるようになっていますか?
LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が
変わってしまうみたいなので。
495デフォルトの名無しさん
垢版 |
2017/11/08(水) 02:39:25.32ID:Uoqj8nW+
TEST
496デフォルトの名無しさん
垢版 |
2017/12/06(水) 00:55:26.32ID:eBsnaSfJ
テスト
2018/02/16(金) 05:55:09.54ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
498デフォルトの名無しさん
垢版 |
2018/05/23(水) 21:07:30.15ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

HSR58
499sage
垢版 |
2018/06/08(金) 07:24:37.45ID:j+JfgiN4
ところでlabelsって関数の名前の由来って何?
しっくりこない
2018/06/17(日) 11:25:32.22ID:eEWfV0tw
>>477
そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。
2018/06/19(火) 02:22:17.89ID:q+1hh2rS
>>500
clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況