X



【入門】Common Lisp その11【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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/
0403デフォルトの名無しさん
垢版 |
2016/09/24(土) 05:38:26.18ID:nvb+KqdK
関数型のブームは来てるけど
HaskellとかScalaに押されてない?
0410デフォルトの名無しさん
垢版 |
2016/10/12(水) 15:59:00.20ID:RYqLfx9/
その代わりCommon Lispはlistとかstringという変数名を定義出来る
Schemeの場合lstとかlsって変数名にせざるを得ない
あとapplyの方が使用頻度が高い気がするがSchemeでも普通に使うわけだから
funcallを使うのは一貫性があるとも言える
0411デフォルトの名無しさん
垢版 |
2016/10/12(水) 16:33:55.36ID:8kMwO8W7
今となっては後の祭りだし慣れないしとあるが、lisp-1にするなら最初の関数名をもっと考えた方が良かったような。
listじゃなくてmklistとかさ。
0414デフォルトの名無しさん
垢版 |
2016/10/13(木) 20:07:13.89ID:xgGYMiuu
0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう
C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな
0415デフォルトの名無しさん
垢版 |
2016/10/13(木) 22:52:04.77ID:C1I1uhJH
いずれの仕様であっても特に美しいとは思わんな。
決め事でしか無いように思う。
0417デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:14:50.68ID:r9fJMQJL
ふと、このスレを見つけたので質問します。
「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL
じゃなくてLispのコードをエディタで書いて一度に実行させるなんて
ことはできるんでしょうか?
出来るなら方法を教えてください。参考サイトなどでも構いません。
0418デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:17:07.36ID:r9fJMQJL
>>417の書き込みの訂正

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

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

macbookのOSX10.6で
iterm上のvimで選択したS式をscreenを介して
もう一つのitermで動くsbcl(又はclisp)に評価、
出力させるのを目標にしています。
なにか知っている事があればよろしくおねがいします。
0429デフォルトの名無しさん
垢版 |
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ってマジでモダンなエディタに移行するのがムリ
0432デフォルトの名無しさん
垢版 |
2016/12/18(日) 08:12:54.17ID:H5VGjwqC
conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか?
simple-conditinとかにはあるのに
0434デフォルトの名無しさん
垢版 |
2017/01/11(水) 12:56:06.91ID:Dj+amy8+
生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。
dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。
あるいは事前にテキストで書いておくか。
他のLISP処理系もこんなものなの?

ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。
0442デフォルトの名無しさん
垢版 |
2017/01/12(木) 09:59:06.51ID:wWrcziVQ
REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう
確かにメモ帳程度のでも内蔵されてれば便利だとは思う
特に初学者の人とか。いきなりEmacsは敷居が高い
0448デフォルトの名無しさん
垢版 |
2017/01/13(金) 11:29:56.98ID:QaVc2fKW
>>442
emacsのlispってemacsのカスタマイズ用途なのでは?
アプリ作成用のlispがまだあるのかどうかは知らないが
0449デフォルトの名無しさん
垢版 |
2017/01/16(月) 16:21:04.42ID:qEdXmsgN
>>447
その情報のソースってどこかにある?
CLISP自体かなり前から更新されてなかったから終わったと言っても今更感があるけど…
0451デフォルトの名無しさん
垢版 |
2017/01/18(水) 14:32:40.83ID:+0XE4PkH
Lispの仕事ってまだあるのだろうか?
古いシステムの保守程度?
0452デフォルトの名無しさん
垢版 |
2017/01/18(水) 23:04:07.71ID:JFSfmo96
どっかの会社で、common lispでやっているところがあったはず

完全に廃れた感じはしないな
0456デフォルトの名無しさん
垢版 |
2017/01/19(木) 21:19:55.80ID:gCwd8P05
お前の抱えるイメージなんかに誰か興味を持つと思ったのか?
0457デフォルトの名無しさん
垢版 |
2017/01/20(金) 00:42:56.98ID:rsnxDR2c
>>456
でも実際に何に使われているんだ?
研究専用言語だと思っていたのだが。
0462デフォルトの名無しさん
垢版 |
2017/01/20(金) 19:20:31.02ID:XUVXYG0t
lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって
roswell使うのは分かるけどroswellってどっからインストールしてんの?
cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど
0464デフォルトの名無しさん
垢版 |
2017/01/21(土) 11:57:50.59ID:0dQCqgGa
>>463
そんな読み物で何が分かるんだ?
0465デフォルトの名無しさん
垢版 |
2017/01/21(土) 16:17:15.46ID:UaDisbHg
roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない
こんな糞アプリ使えるかよ
0466デフォルトの名無しさん
垢版 |
2017/01/21(土) 16:57:44.64ID:QA6O+rWe
ここで聞いてももう駄目
githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い
0467デフォルトの名無しさん
垢版 |
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
って書いてあるけど知りたいのはこれじゃないってこと?
0472デフォルトの名無しさん
垢版 |
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と入力するといつも通り起動します。
0473デフォルトの名無しさん
垢版 |
2017/02/03(金) 00:03:57.75ID:uSnzwgyQ
コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか?
パスを確認すると良いとおもう
sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない
0475デフォルトの名無しさん
垢版 |
2017/04/05(水) 03:18:41.90ID:9ywW0Xq5
>>474
なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの?
0476デフォルトの名無しさん
垢版 |
2017/04/08(土) 15:56:08.90ID:Uc8a2Yv6
Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ

Sparse matrix計算も出来ないみたいだし
0477デフォルトの名無しさん
垢版 |
2017/05/03(水) 04:46:48.46ID:94GhuONY
Cのプログラムがcuda使うと100倍速くなるのに
cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故?
0478デフォルトの名無しさん
垢版 |
2017/05/09(火) 20:10:22.37ID:v4p9YapF
>>477
行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う
0479デフォルトの名無しさん
垢版 |
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のライブラリが直接使いたいならこれを使えばいい。
0480デフォルトの名無しさん
垢版 |
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))))))
0483デフォルトの名無しさん
垢版 |
2017/05/19(金) 21:58:39.33ID:N5yG+fmp
>>482
concatenateの方はエラーがでます
普通に文字列を渡せばうまくいくのですが
0484デフォルトの名無しさん
垢版 |
2017/05/20(土) 00:30:38.53ID:ZKXptbMB
>>480
どうしてマクロにしたの?初心者だから?
0485デフォルトの名無しさん
垢版 |
2017/05/20(土) 01:15:39.37ID:I6lRK30f
>>484
関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて
普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。
(eval `(defparameter ,変数 ,文字列))だとうまくいきますね
0486デフォルトの名無しさん
垢版 |
2017/05/20(土) 01:30:33.54ID:I6lRK30f
問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので
なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました!
0487デフォルトの名無しさん
垢版 |
2017/05/21(日) 06:36:36.81ID:oB72Q+Da
OpenCVの超解像計算プログラムは
cpuとgpuで100倍近く速度に差があるよ
0488デフォルトの名無しさん
垢版 |
2017/05/21(日) 06:50:43.54ID:oB72Q+Da
typed racketみたいな型推論をcommon lispでする方法ないのでしょうか?
0489デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:45:11.09ID:jy5dosQP
>>488
common lispのコンパイラでも型推論くらいするの知ってるか?
それがどう駄目なのか,どうしたいのかをまず書けよ.
0490デフォルトの名無しさん
垢版 |
2017/05/22(月) 06:10:33.21ID:Suxf7jk2
sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った
0491デフォルトの名無しさん
垢版 |
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の文字を正規表現かなにかで切り分ける方が良いのだろうか
0493デフォルトの名無しさん
垢版 |
2017/05/31(水) 17:40:47.18ID:PPe5oyts
Common lispでcのプログラムコード読み込んで
関数宣言一覧取り出して、ヘッダーファイル生成するような
パーサージェネレーターのサンプルコードどこかないでしょうか

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

HSR58
0499sage
垢版 |
2018/06/08(金) 07:24:37.45ID:j+JfgiN4
ところでlabelsって関数の名前の由来って何?
しっくりこない
■ このスレッドは過去ログ倉庫に格納されています

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