> いろいろなライブラリを集めたEmacs Lisp Listで探してみたらどうでしょう?
>
http://www.anc.ed.ac.uk/~stephen/emacs/ell.html > SCI-LAB と連携するのがお勧めかなぁ.
> どうしても Lisp でプログラミングしたいなら Common Lisp + MATLISP とか.↓な感じ.
有難うございます。調べてみます。
逆行列は、実は今は R (www.r-project.org) をemacsから呼んでいるのですが、
(実は途中の文字列の parsing で Perl をかましています..ださい)
遅いし、Rをインストールしてないと使えないので、他の手段がないかなと思ってます。
> Perlやってて汎関数がいかしてるってんなら、Rubyでもいいんじゃね。
Rubyを習うとPerlと見かけが似すぎてて混乱しそうなので、習っていません...
R で遅いから elisp ってのは違う気がするな…。R より速いってこたぁないだろう。 純粋に計算速度の問題なら計算部分だけ C で書くとか。
R は、起動に5秒ぐらいかかるんですよね 起動してからの計算は別に遅くもないんですが。 Lisp でも他の Common Lisp のアプリケーションをインストールする必要が あるのだと結構おおがかりですね。 結局 Perl の ライブラリを使ってしまうかも知れない..
なんと「起動するまでが」遅いって話だったのか….最初に 5 秒待つのが嫌なのか. それって一回だけじゃないの?ひょっとして,頻繁に Emacs を終了,起動とかやっ てる人? Common Lisp 云々は「計算が」遅い場合の話なので 947 の望む話とは違う だろう.もちっと具体的にやりたいことを書かないと他人に伝わらないと思われ. ものによっては elisp で済むかもしれないし,Perl のがてっとりばやいかもしれない.
ファイルの読みこみ時間じゃないのか
980くらいになったら次スレ立てようか。
なんで cl って嫌われてるの?
1. ランタイムにつかうとマズーだから 2. Common Lisp より Scheme が好きな香具師が多いから 3. 再帰原理主義者は do 系列の反復用構文が嫌い 4. cl の拡張 loop マクロは文字列やハッシュをループで処理するときに便利だが、 なんでか嫌いな人が多い。Common Lisper の中でも別れる。 Peter Norvig 本から入門した人→ loop が作れる。使うべきときには使う。 Paul Graham 本から入門した人 → Paul が loop 嫌いなので loop は糞だと思ってる。 …まぁ、1がもっとも大きな原因じゃないの?
cl の好悪はおいといて、スレにコードを書く時は、 > 1. ランタイムにつかうとマズーだから なわけだし、Navi2ch で C-x C-e できるよう、cl 使わず書いて欲しい。
具体的に言うと、何が使っちゃ駄目なの? dolist, dotimes はいいよね? 駄目なのは loop だけ?
dolist, dotimesは subr.elにあるし、十分認知されたから ok. ついでに elisp的にというよりスレ的にだが、 cl利用しまくりコードは lispスレへカエレみたいな。
>>959 > 1. ランタイムにつかうとマズーだから
具体的には何がマズいの?
教義で禁じられているからです。
http://www.gnu.org/manual/elisp-manual-21-2.8/html_node/elisp_709.html > Please don't require the cl package of Common Lisp extensions at run
> time. Use of this package is optional, and it is not part of the
> standard Emacs namespace. If your package loads cl at run time, that
> could cause name clashes for users who don't use that package.
cl-* 以外の全ての外部名は、本来ユーザーに公開されてるはずの名前。
たとえば、.emacs で replace という俺コマンドを定義していた場合、
ランタイムで cl を要求されちゃうと動かなくなる。
なるほど。
cl の出来そのものが悪いという訳じゃないのね。
emacs の正式パッケージじゃないから
名前がバッティングするおそれがあるということだけか。
>>959 の 2-4 は好みの問題だしね。
素人なので「run-time以外」という表現がよく理解できませんが どういうときには使っていいのでしょうか?
多値が使えない
バイトコンパイル時
実際自分で使うものでも.emacsでもcl使ってない人って多いの? elispまともに書かない人は別として。 俺は自分で使うものはcl使いまくりなのでcl全然構わない派なんだけど。
おれはいきなり require してるよ。
ランタイムにclパッケージ群が必要かどうかって、cl.elとか実際に覗かないと わからないよね? それって面倒だな。
漏れは自分では cl 使ってる気はなかったが、cl がロードされていた…。loop 以外 に具体的に何がまずいの?具体的に言ってくれなきゃわかんねーYO!! いちいち cl かどうか調べるのマンドクサ。cl 見たくない香具師は見ないってことでどーよ? navi2ch のフィルタリング機能でも使えばそれくれー簡単だろう。
>>971 CLのinfoに"Some features conflict with existing things in
Emacs Lisp"と書いてあるけど実害はないの?
>>973 大体この関数が怪しいとかって予想つくでしょ?
で、それを describe-function すれば定義したファイル判明するし。
いうほどやっかいじゃないと思う。
# clが loadされると subr.elにあるのに再定義されてしまう
# dolistのような例もあるけど。
## cl が loadされた後に subr.elので再再度定義しなおしたりしちゃったら
## なんかマズいことあったりするのかな。
>>975 漏れ elisper じゃないから良くわかんないけど,拡張された cl なやつ
(素のやつでは使えない機能付き)で置きかえちゃうから、cl 無しの人で実行で
きないとかでないの?漏れ気づかずにロードされてたクチだけど、100 MB オーバー
の大量の elisp パッケージのどれも問題が出たことはないし(たぶん)。
>>973 だから、どれなんだ?具体的に言ってくれ。そしたら一応気をつけるから。
今迄の話だと,俺には loop くらいしか推測がつかない。
このスレでよく出るものでは、 mapcon, mapcan, maplist, mapcar*, flet, labelsなどなど。
* loop、do、lexical-let、labels 等のマクロ (eval-when-compile (require 'cl)) でコンパイル時に解決できるから 他人に配布するプログラムでも使ってかまわない。 ただし、初心者の質問への答え等には向かないと思う。 * merge、union、map 等の関数 実行時に cl に依存してしまうので、他人に配布するプログラムでは 使ってはならない。自分だけのために書くならお好きに。
ド初心者で悪いんだけど、実行時に cl に依存すると何が問題なの? cl って emacs の標準配布物だよね?
初心者的には俺 merge とか 俺 union とか定義するなら、素直に cl 使った方が いいような気もするんですけど、そーゆうもんでもないんですね。よくわかんない けど、とりあえず cl は避けておきます。なんでこんなの標準添付されてんのかな? require したらエラーにするくらいしてくれてもいいのに。ややこしいなぁ。
知らぬ間に cl がロードされていて困ってます。.emacs 内では require していませ ん。どうやらなにかのパッケージが勝手にロードしちゃってるようです。このままだ とどのような恐しい事が起るのでしょうか?また,どのように対処したらいいのでしょうか?
>>982 cl-*.el のソースをコピペして関数名を変えて使ってるよ。
>>984 他の人はどうだか知らんが、今まで cl をロードしてて変なことになったこと
はないよ。info の注意書きは「依存しないようにしておいたほうが無難」く
らいの意味あいなんじゃないの?
この問題は、そもそも elisp にパッケージ機構がないのが原因なんじゃないの?
ド初心者です。apel みたいな標準名前空間(パッケージ名の prefix 無しくらいの 意味ね)に入れちゃうパッケージはわりとメジャーなようですがどうなんでしょう? 標準で付いてくる cl はつかってはならないのなら,apel みたいな外部ライブラリ は言語道断なんでしょーか? cl で置き換えられちゃう関数群ってアッパーコンパチ なんでないの?なんか elisp 始める前に混乱中ですが…。
>>975 それは
Some Common Lisp features have been omitted from this package for
various reasons:
この欄に出てくる文でしょ。emacs と conflict する feature は
別名にしてるって書いてあるよ。
lexical-let とか flet とか label とか、単純に便利だと思うんですけどね。
人にくばる可能性があるものには使わないけど。
こういうの誰か作ってくれない? (require 'cl-cl) (cl-union ...) (cl-merge ...) みたいにプレフィックスが全部ついてるの。機能は cl と全く同じで。
cl(|-(macs|extra|...)).elを読み込んで、symbolを置換してから評価するとか?
単純に (defun hoge (defmacro hoge (defalias hoge これらを置換したら?
そろそろ次スレだね。
>>986 apel はそうでもないけど、糞flim は本家 gnus 使ってると smtpmail-send-it あたりで
emacs 標準のものと名前が衝突して、しかも微妙に仕様が違うから document 通りに
設定してるの動かない、とハマる。
しかもファイル名まで同じだから余計タチ悪い。氏ね。
埋め立て
Emacs Lisp 2
http://pc2.2ch.net/test/read.cgi/tech/1068467385/ □□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。