Emacs Lisp

このエントリーをはてなブックマークに追加
952947:03/11/07 13:02
> いろいろなライブラリを集めた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 で書くとか。
954947:03/11/08 07:25
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 を要求されちゃうと動かなくなる。
966958:03/11/09 21:35
なるほど。
cl の出来そのものが悪いという訳じゃないのね。
emacs の正式パッケージじゃないから
名前がバッティングするおそれがあるということだけか。
>>959 の 2-4 は好みの問題だしね。
素人なので「run-time以外」という表現がよく理解できませんが
どういうときには使っていいのでしょうか?
多値が使えない
バイトコンパイル時
実際自分で使うものでも.emacsでもcl使ってない人って多いの?
elispまともに書かない人は別として。
俺は自分で使うものはcl使いまくりなのでcl全然構わない派なんだけど。
971958:03/11/10 01:26
おれはいきなり require してるよ。
次スレテンプレ用リンク集

* Emacsカスタマイズ入門
ttp://www.netfort.gr.jp/~kiyoka/emacs_setq/emacs_setq.html

* GNU Emacsマニュアル (Emacs20用)
ttp://www.sr3.t.u-tokyo.ac.jp/~takekawa/gnujdoc/emacs-20.6/emacs-ja_toc.html

* リファレンスマニュアルは(ちと古い)
ttp://www.fan.gr.jp/~ring/doc/elisp-manual/elisp.html

* GNU Emacsマニュアル(英語) (Emacs21用)
ttp://www.gnu.org/manual/elisp-manual-21-2.8/html_node/elisp.html

* Programming in Emacs Lisp
ttp://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp.html

* Emacs Lisp あれこれ
ttp://www.mew.org/~kazu/doc/elisp/

* Emacs Lisp で書かれたプログラムのバグを知らせる方法
ttp://www.jpl.org/elips/BUGS-ja.html

Emacs21用リファレンスマニュアルの和訳ってありますか?
ランタイムに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 の標準配布物だよね?
>>980 ログよめ。>>965
初心者的には俺 merge とか 俺 union とか定義するなら、素直に cl 使った方が
いいような気もするんですけど、そーゆうもんでもないんですね。よくわかんない
けど、とりあえず cl は避けておきます。なんでこんなの標準添付されてんのかな?
require したらエラーにするくらいしてくれてもいいのに。ややこしいなぁ。
>>982
Emacs part10
http://pc.2ch.net/test/read.cgi/unix/1066719492/

245 :名無しさん@お腹いっぱい。 :03/10/31 23:40
>>244
だったら使わない方がいいよ。cl は「○○もないのかよ」ってな
Common Lisp 厨房をなだめるためにあるパッケージだから。
The Emacs Lisp Reference Manual の範囲で書いとけ。
知らぬ間に cl がロードされていて困ってます。.emacs 内では require していませ
ん。どうやらなにかのパッケージが勝手にロードしちゃってるようです。このままだ
とどのような恐しい事が起るのでしょうか?また,どのように対処したらいいのでしょうか?
>>982
cl-*.el のソースをコピペして関数名を変えて使ってるよ。

>>984
他の人はどうだか知らんが、今まで cl をロードしてて変なことになったこと
はないよ。info の注意書きは「依存しないようにしておいたほうが無難」く
らいの意味あいなんじゃないの?

この問題は、そもそも elisp にパッケージ機構がないのが原因なんじゃないの?
ド初心者です。apel みたいな標準名前空間(パッケージ名の prefix 無しくらいの
意味ね)に入れちゃうパッケージはわりとメジャーなようですがどうなんでしょう?
標準で付いてくる cl はつかってはならないのなら,apel みたいな外部ライブラリ
は言語道断なんでしょーか? cl で置き換えられちゃう関数群ってアッパーコンパチ
なんでないの?なんか elisp 始める前に混乱中ですが…。
987971:03/11/10 15:24
>>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を置換してから評価するとか?
990971:03/11/10 20:35
単純に
(defun hoge
(defmacro hoge
(defalias hoge
これらを置換したら?
そろそろ次スレだね。
誰か立ててー俺立てて見たけど無理だった。
前スレ
Emacs Lisp
http://pc2.2ch.net/test/read.cgi/tech/1004551074/

関連スレ
Emacs part10
http://pc.2ch.net/test/read.cgi/unix/1066719492/
LISP Scheme Part8
http://pc2.2ch.net/test/read.cgi/tech/1058263391/
さえ入っていれば大丈夫だよ。
>>986
apel はそうでもないけど、糞flim は本家 gnus 使ってると smtpmail-send-it あたりで
emacs 標準のものと名前が衝突して、しかも微妙に仕様が違うから document 通りに
設定してるの動かない、とハマる。
しかもファイル名まで同じだから余計タチ悪い。氏ね。
995 :03/11/10 23:44

ヤフー掲示板で「学習指導」を行っていた
学習塾の名物講師・田村晋也が 【 男児ポルノ販売で逮捕 】 されたため、
塾に通っていた保護者(特に母親から)激しい罵倒をされています。

【社会】男児ポルノ画像、メール配信した疑い 教諭ら6人逮捕[10/09]
http://news5.2ch.net/test/read.cgi/newsplus/1065871362/

逮捕されたのは、
田村晋也(39)・・・・・さいたま市南区 南浦和1−20−11−201
地図:http://map.yahoo.co.jp/pl?nl=35.50.55.477&el=139.40.16.481&la=1&fi=1&sc=3

犯人の経営していた塾
『まったく新しい学習空間 TOM'Sクラブ』

埼玉県 戸田市本町4-*-*  モー****パー*戸田***F
048-4**-7***
正確な住所・電話番号等の記載:
http://www.google.co.jp/search?q=cache:dQRI_9ohaWYJ:www11.ocn.ne.jp/~juken/search/tohuken/saitama.html+%E3%81%BE%E3%81%A3%E3%81%9F%E3%81%8F%E6%96%B0%E3%81%97%E3%81%84%E5%AD%A6%E7%BF%92%E7%A9%BA%E9%96%93TOM%27S%E3%82%AF%E3%83%A9%E3%83%96&hl=ja&ie=UTF-8
現場の地図:http://map.yahoo.co.jp/pl?nl=35.48.9.882&el=139.41.7.470&la=1&fi=1&sc=3
埋め立て
Emacs Lisp 2
http://pc2.2ch.net/test/read.cgi/tech/1068467385/
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□
□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。