【入門】Common Lisp その11【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
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/
0や""はtrueなのに'()だけがfalseになるのが美しくないからだろう C言語の0みたいに特定の値が自動的にfalseになるのは古い言語だからだな いずれの仕様であっても特に美しいとは思わんな。 決め事でしか無いように思う。 デフォルトコンストラクタと等しい値はすべてfalseにしてしまえ。 ふと、このスレを見つけたので質問します。 「Land of Lisp」を参考に、CLISPでCommonLisp勉強してるんですが、LEPL じゃなくてLispのコードをエディタで書いて一度に実行させるなんて ことはできるんでしょうか? 出来るなら方法を教えてください。参考サイトなどでも構いません。 >>417 の書き込みの訂正 LEPLじゃなくてREPLです。 うちは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 >>419 おおおお 出来ました!!! サンプルプログラムまで書いていただきありがとうございます。 Lispを初めて日が浅いのですが、とても分かりやすかったです。 clisp の場合は clisp a.lisp という風にファイル名を指定するだけでも実行できるよ この場合REPLとは異なり、特に何もしなくても自動的に終了する sbcl には同様のことをする --script オプションがある >>421 なるほど、そういう方法もあるんですね。参考になります。 多分emacsでSLIME使うのが一番捗る。ある程度やって、もっと環境良くしたいと思ったら導入してみるといい ファイルに書きなぐって一部だけ評価するとかできる (defparameter param #\a) を生成するマクロ (defmacro ch! (ch) `(defparameter param #\,ch)) が、動かないのはなぜでしょうか? 教えて下さい。 >>425 面白い。426のいうとおり リードマクロがマクロの展開より先に展開されるのがうまく動かない理由。 (defmacro ch! (ch) (read-from-string (format nil 424です。 >>426 ご返答ありがとうございます。 「入力マクロを何と心得ておる」 リードマクロの事でしたら不勉強でした。 1文字づつ地を這う様なカスタマイズに思えて lispっぽさが感じられず読む気が無くなるんです。 >>427 書きかけの続きを ぜひ読みたいです。おねがいします。 macbookのOSX10.6で iterm上のvimで選択したS式をscreenを介して もう一つのitermで動くsbcl(又はclisp)に評価、 出力させるのを目標にしています。 なにか知っている事があればよろしくおねがいします。 >>428 割とマジでLispで遊ぶならEmacs使う方が良いような(Slime環境とか https://common-lisp.net/project/slime/ ) vimとかよりかなり楽(emacsのキーバインドで死ねるって人には向かない) つかLisperならEmacsと心中するのが吉 #って感じなEmacsと入水心中の俺 orz #Clojure含めてEmacsとLispってマジでモダンなエディタに移行するのがムリ 独り言だが ClojureとClozure CLってべつものなのか Clozure CLはjava関係ないのね conditinのerrorクラスにformat-controlとformat-argumentがないのは何んでなんでしょうか? simple-conditinとかにはあるのに 生まれて初めてLISPをやってみようと思い、CygwinのCLISPを入れて見たのだが、プログラムを保存する方法が特にないのは驚いた。 dribbleでインタプリタのコマンドライン履歴を保存するか、(EXT:SAVEINITMEM)でインタプリタのメモリイメージを保存するくらいしかできないみたい。 あるいは事前にテキストで書いておくか。 他のLISP処理系もこんなものなの? ヒューレットパッカードRPL言語を少しだけ使ったことがあるけど、あっちは保存がちゃんと考えられていた。 >>437 えっ ちょっと待って 今ラジカセ用意するから...間違えてLOADって打たないでね >>436 RPLだと関数も変数も必ずファイルとして存在する。 RPLの祖先のForthも同じかもしれない。 ほしいのは、emacs+slime環境? あるいはaclとかlispworks REPL環境じゃなくて内蔵エディタみたいなのを期待してたんだろう 確かにメモ帳程度のでも内蔵されてれば便利だとは思う 特に初学者の人とか。いきなりEmacsは敷居が高い >>442 emacs環境だとLispよりもemacsの勉強になってしまうからなあ >>442 >>443 同意、最初からEmacsは難しすぎる LispよりEmacsの方が難しいくらい >>442 emacsのlispってemacsのカスタマイズ用途なのでは? アプリ作成用のlispがまだあるのかどうかは知らないが >>447 その情報のソースってどこかにある? CLISP自体かなり前から更新されてなかったから終わったと言っても今更感があるけど… >>449 長年更新していないので、オワタ可能性は高くね? Lispの仕事ってまだあるのだろうか? 古いシステムの保守程度? どっかの会社で、common lispでやっているところがあったはず 完全に廃れた感じはしないな Lispと言えば、研究用途かWebサーバーで使うようなイメージしかないわ お前の抱えるイメージなんかに誰か興味を持つと思ったのか? >>456 でも実際に何に使われているんだ? 研究専用言語だと思っていたのだが。 >>456 みたいなBOTに使われているという実例 LispはUNIX以外で実用的に使うのは無理なのかねえ? lemのgithubのページでインストールにros install cxxxr/lemしろと書いてあって roswell使うのは分かるけどroswellってどっからインストールしてんの? cxxxr/lemという引数を見る限りgithubからインストールしてるような気がするけど roswellどのサーバーにアクセスするとか一切ドキュメントに書いてない こんな糞アプリ使えるかよ ここで聞いてももう駄目 githubのissueかtwitterかredditのr/lisp_jaかja.stackoverflowのlispタグのどれかが良い ttps://github.com/roswell/roswell の Installing scripts に $ ros install fukamachi/qlot # will install it from the GitHub って書いてあるけど知りたいのはこれじゃないってこと? >>404 言語組み込み解禁で誰かがluaに変えると予想 わかる人いたら教えて下さい。 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と入力するといつも通り起動します。 コマンドで呼んでいるsbclとスクリプトで呼び出しているsbclが違うんじゃないか? パスを確認すると良いとおもう sbcl --core コアのパス/sbcl.core と明示しても解決するかもしれない Common lispからpythonの特にnumpy関係のライブラリ使う方法ないのでしょうか? >>474 なんでcommonlispからソレが必要になるのかがまずわからんがrationalでは扱えないくらいでかい桁数の浮動小数値なの? Pythonだとpandasとかにある関数がないからpythonをffiで呼べないとclでdeel learningきついなあ Sparse matrix計算も出来ないみたいだし Cのプログラムがcuda使うと100倍速くなるのに cl-cudaマクロがせいぜい7倍ぐらいしか速くならないのは何故? >>477 行列のかけ算とかだとopenblas(マルチコアCPU)とcublas(CUDA、GPU一枚)で俺の環境だと7倍程度の差しかないし、多分比較対象のCプログラムの書き方が相当まずいだけだと思う >>476 密行列はLLA、MGL-MATがopenblas/MKL/cuBLASのラッパーになってる。 疎行列なら現状ラッパーが多分ないのでCFFIでcuSPARSEへのバインディングを書こう。 全結合のディープラーニングならMGLでCommon Lispのみでできる。 PythonのClojureライクなLisp方言ならHy(hylang)がある。 Pythonのライブラリが直接使いたいならこれを使えばいい。 初心者です ハマってしまったので助けて下さい! ファイルを読み込んで 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)))))) >>480 macroexpand で展開してみた? >>482 concatenateの方はエラーがでます 普通に文字列を渡せばうまくいくのですが >>480 どうしてマクロにしたの?初心者だから? >>484 関数の中で(eval `(defparameter ,変数 ,シンボル))とすると変数がありませんというエラーがでてきて 普通にdefparameterしようとしても変数定義はされないのでマクロでやるしかないと思いました。 (eval `(defparameter ,変数 ,文字列))だとうまくいきますね 問題が解決できました evalはあまり使っちゃいけない的なことが言われてたと思うので なんとなく気が引けてマクロを使っちゃった感じです 初心者の質問に付き合ってくださりありがとうございました! OpenCVの超解像計算プログラムは cpuとgpuで100倍近く速度に差があるよ typed racketみたいな型推論をcommon lispでする方法ないのでしょうか? >>488 common lispのコンパイラでも型推論くらいするの知ってるか? それがどう駄目なのか,どうしたいのかをまず書けよ. sbclのtheのdescribeに相当する機能がtyped racketだとreplからしか使えないような意地悪されてるのでcommon lispでもそうかと思った sbclのdescribeで https://github.com/sbcl/sbcl/blob/master/src/code/describe.lisp derived-typeの情報だけ取り出して他の変数に格納したいのに うまくいかない streamに文字列出力する関数だからstreamの文字を正規表現かなにかで切り分ける方が良いのだろうか >>490 > sbclのtheのdescribe が意味するところが分からない. Common lispでcのプログラムコード読み込んで 関数宣言一覧取り出して、ヘッダーファイル生成するような パーサージェネレーターのサンプルコードどこかないでしょうか c言語の解析するサンプルコードなら他のでも良いです 誰か知っていれば教えてほしいのですが LispWorks 7.0 のmacOS版って日本語表示や日本語入力問題なく できるようになっていますか? LispWorks 6.1 Personalを使っているのですが日本語入力すると??に文字が 変わってしまうみたいなので。 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 HSR58 ところでlabelsって関数の名前の由来って何? しっくりこない >>477 そもそもCLはインタプリタだからGPU使っても7倍程度しか速度出ないのは当たり前だろ。 >>500 clはコンパイラ言語だよ.仕様上インタプリタ実装も許容されているだけ こないだ迄Windows10の64bit版ではDEPの絡みで動かないと思ってた、SBCL版のMaximaが、 今試してみたらあっさり動いてしまいました。 sf.netに置いてあったインストーラでインストールした直後はCLISP版しか駄目だった 筈なんですが…。 うちではWindows10 Homeを使ってますが、皆様の処ではどうでしょうか? SBCL自体を別途インストールしたのが効いてるのかも知れないなぁ…。 Lispってwebフレームワークありますか? 一通りの機能のあるブログを作ったり出来るような 質問です。 Lispで書かれたLisp処理系はありますか? roswellについての質問なんですが ros init ファイル名 としたときできるファイルの中身の (progn ;;init forms (ros:ensure-asdf) ;;#+quicklisp (ql:quickload '() :silent t) ) って何ですか? (ros:ensure-asdf)特にこれ >>509 そんな事俺に聞かれても知るわけないやろ頭おかしいんか? Common LispからC言語のモジュールを呼ぶ方法は簡単に見つかるのですが C言語からCommon Lispプログラムを実行する方法が見つかりません。 GaucheならC言語からインタープリタを起動できるみたいなのですがCommonLispにはないのでしょうか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる