[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/27 08:34 / Filesize : 205 KB / Number-of Response : 769
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Emacs Lisp 3



1 名前:デフォルトの名無しさん [2007/10/09(火) 05:39:53 ]
Emacs Lisp の専用スレ。
少数派による互助を中心に、初心者の相談も気が向けば受け付けます。
単なる Emacs ユーザーは別板の Emacs 関連スレにどうぞ。

過去スレ
Emacs Lisp
pc2.2ch.net/test/read.cgi/tech/1004551074/
Emacs Lisp 2
pc11.2ch.net/test/read.cgi/tech/1068467385/

関連スレ
Emacs part 22
pc11.2ch.net/test/read.cgi/unix/1180828013/
【叩かれて】Emacs Lisp道場【強くなれ】
pc11.2ch.net/test/read.cgi/unix/1063880951/
Lisp Scheme Part18
pc11.2ch.net/test/read.cgi/tech/1186922295/

628 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 03:21:35.56 ]
labelsと (require 'cl)について教えてください。

1. Emacs Lispにはlabels相当の命令はありますか?
2. (require 'cl)をちょっとぐぐったところ Emacs 付属lispには使うな的な事が書いてあって賛否両論で云々〜
  とあったのですが、これはなんででしょう?

以上よろしくです。


629 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 04:12:40.77 ]
>>628
1. あります。
2. ググった先で喧々諤々やってたでしょうに。

簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。
そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。
(fooというライブラリなら、foo-funcみたいな名前を付けます)

ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、
その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、
一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、
プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、
許容して便利さを採る人がいて、議論の争点になります。

こういう構図です。理解できなかったら勉強するとじきに分かるようになると思います。
自分で書いたプログラムを配布するのでもなければ、気にすることはありません。

630 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 04:18:01.74 ]
補足。正確に言うと、labelsは標準の機能としては提供されていませんが、
Emacsに付属のclライブラリで提供されています。

631 名前:628 mailto:sage [2011/08/15(月) 05:50:20.73 ]
>>629
> 簡単に説明すると、Emacs LispはCのように、名前空間がひとつしかないのです。
> そのため、ライブラリの関数などには接頭辞を付けるのがマナーになっています。
> (fooというライブラリなら、foo-funcみたいな名前を付けます)
>
> ですが、clライブラリではCommon Lispの関数やマクロと名前を合わせるため、
> その接頭辞を付けていません。そのため、(require 'cl)でライブラリを読み込むと、
> 一般的な名前のマクロや関数が大量に定義され、それらの名前が使われることで、
> プログラマが好きに付けられる名前が減ってしまいます。これを許せない人と、
> 許容して便利さを採る人がいて、議論の争点になります。

めっちゃ的確な解説ありがとう。
グローバルな名前空間汚すな云々ってことだったのですね。
C/C++使ってるので解説はとてもわかりやすかったです。

>補足。正確に言うと、labelsは標準の機能としては提供されていませんが、
>Emacsに付属のclライブラリで提供されています。
はい、こちらは(require 'cl)後にlabelsが使えることは確認してますー。
なのでclを使わない別の方法が標準で提供されてるのかな?とおもってますた。



632 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 09:21:43.98 ]
629じゃないけど横から補足しておくと、clのうちマクロで提供されている部分は
バイトコンパイルすると実行時にはclを必要としない(ものが多い)ので、
そういうのは使っても問題ない。labelsもその一つ。

それを前提とした使い方の場合は
(eval-when-compile (require 'cl))
とする。こういう使い方はEmacs標準のelispでも多用されている。

633 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 15:08:17.60 ]
ポイント位置が最上行か最下行かを判定するのはどうすればいいでしょうか?


634 名前:デフォルトの名無しさん [2011/08/22(月) 06:51:10.47 ]
>>633
(= (point-at-bol) (point-min)) ; ポイントがバッファ表示の最初の行にあるか?
(= (point-at-eol) (point-max)) ; ポイントがバッファ表示の最後の行にあるか?

バッファの可視領域が制限(ナローイング)されている場合、上記はその制
限された「見た目上の」先頭行・最終行を判定します。

ナローイングの有無に関らず「実際の」先頭行・最終行を判定したい場合
は次のようにします:

(= (point-at-bol) 1)) ; ポイントが実際のバッファ内容の最初の行にあるか?
(= (point-at-eol) (1+ (buffer-size))) ; ポイントが実際のバッファ内容の最後の行にあるか?

635 名前:デフォルトの名無しさん [2011/09/02(金) 02:44:23.27 ]
frame-title-formatについて質問です。
buffer-file-nameがnilでなければ"a"を、nil だったら"b"を表示したくて
 (setq frame-title-format '(if buffer-file-name "a" "b"))
のようにしてみたのですが、条件の判別がうまくいかないようです。
どうしたらうまくいきますか?
お願いします。

636 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 03:43:53.94 ]
'(:eval (if buffer-file-name "a" "b"))
なんかこうこんな感じだったはず
確かめてないけど



637 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 13:09:06.78 ]
>>636
ありがとうございます。
助かりました。

638 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 01:50:01.80 ]
前に、市の図書館の新刊にこの本あったわ。最近新装版でたのか
この本は自腹で買わないと身に入らないだろw

639 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 01:51:01.39 ]
いやこの本とか意味不明だなw広瀬本

640 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 19:17:46.57 ]
そういや出てたな。買わなかったけど。

641 名前:デフォルトの名無しさん [2011/09/24(土) 12:19:32.59 ]
タブ幅が tab-width の2倍になってしまいます。

(setq tab-width 8) とするとタブ幅が半角16文字分になり、
これを8文字分にするには (setq tab-width 4) としなければなりません。
何故でしょうか?

よろしくお願いします。

642 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:04:50.10 ]
>>641
とりあえず C-h v (describe-variableだっけ?) あたりで、ちゃんと8になってるか見てみれば?

643 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 20:26:08.46 ]
>>642
ありがとうございます。
確認してみましたが、設定した通りになっているようです。
しかし実際のタブ幅はその値の2倍になってしまっています。

644 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 23:38:16.25 ]
フォントによってそうなるような気が。

645 名前:デフォルトの名無しさん [2011/09/26(月) 01:51:59.22 ]
>>641
たぶんこれと同じ現象では。

■Emacs23のフレーム幅が変、■Emacs23のフレーム幅が直った
garakuta.homelinux.org/~nosuke/diary/diary.html?y=2008&m=10&d=15&n=1

646 名前:デフォルトの名無しさん [2011/10/07(金) 15:26:12.43 ]
(eq 'abc 'abc)は何故tで、
(eq "abc" "abc")は何故nilなんでしょうか。



647 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/07(金) 20:12:16.62 ]
eq での比較は同値性ではなく同一性を判定する。 つまり、同じ値であってもそれそのものでなれば nil になる。
シンボルは登場と同時にシンボルテーブルに登録 (intern) されるので字面が同じシンボルは常に同一と判定される。

648 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 23:38:19.22 ]
>>647
とてもわかりやすい説明ありがとうございます。

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/10/10(月) 09:48:28.47 ]
info の記述とは違う気がするけど、こんなものなのか?

(let ((s "\241"))
(list (string-match "[[:ascii:]]" s)
(string-match "[[:nonascii:]]" s)
(string-match "[[:unibyte:]]" s)
(string-match "[[:multibyte:]]" s)
(string-match "[[:print:]]" s)
(string-match "[[:punct:]]" s)
(string-match "[[:graph:]]" s)
(string-match "[[:word:]]" s)))
(nil nil nil nil nil nil nil nil)


650 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 05:00:14.95 ]
インタプリタはないの?

651 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 11:59:34.58 ]
M-x ielm

652 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:40:09.17 ]
LISP 言語と A.I. の父 John McCarthy 博士死去 2011年10月26日

Stanford Engineering はコンピューターサイエンティストで A.I. 分野の草分け的存在だった
John McCarthy 博士が2011年10月24日、同氏のカリフォルニア州スタンフォードの自宅で
亡くなったと伝えた。84歳だった。
McCarthy 博士が世間の注目を集めたのは、1966年にロシア国内のライバルと
コンピューターチェスの対戦を主催したときのことだった。4試合同時に行われたこの
対戦は数か 月に及び、結果は McCarthy 博士側の2敗2引き分け。McCarthy 博士は後に
「完敗だった」と語っていた。
McCarthy 博士は、21世紀を迎えた現在やっと現実のものとなりつつある「人工知能
(Artificail Inteligence:A.I.)」という概念を50年以上も前から唱えていた A.I. 界の巨人。
同氏は1956年に英国の Dartmouth 大学で開催された人工知能に関する会議「ダートマス
会議」に提案書を提出し、「A.I.」という言葉をその提案書の中で歴史上初めて使用した。
1958年、McCarthy 博士はコンピューター言語 LISP を開発。これは、FORTRAN に次いで
2番目に古いプログラミング言語で、A.I. プログラムを記述する言語として現在も使用されている。
また、あまり知られていないことだが、「ガーベージコレクション(ゴミ収集)」と呼ばれる
技術を開発したのも McCarthy 博士。これは、プログラムが予約したメモリ領域のうち不要に
なった領域を自動解放する技術で、LISP 言語の機能強化の一環として開発された。。
1960年代の初頭には、McCarthy 博士はタイムシェアリングによるコンピューターの効率的な
利用というコンセプトをすでに発表しており、このコンセプトはその後の分散処理やクラウドへと
発展するコンピューティング技術の基礎となった。

653 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:40:35.53 ]
スタンフォード大学名誉教授で上級科学研究員の Les Earnest 氏は次のように語っている。
「多くの人々が、タイムシェアリングがコンピューターを使う賢い方法だということはわかって
いた。だが、どうすれば実現できるかについては、誰もわからなかった。John 以外は誰も」

氏の告別式は、近く執り行われる。
▽記事引用元 japan.internet.com
japan.internet.com/webtech/20111026/2.html
▽画像 John McCarthy 博士(Stanford Engineering)
japan.internet.com/img/20111026/1319617220.jpg
▽博士のホームページ
www-formal.stanford.edu/jmc/index.html

654 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:41:55.61 ]
toki.2ch.net/test/read.cgi/scienceplus/1319679294/

655 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 21:19:57.61 ]
書籍案内:Emacs Lispテクニックバイブル|gihyo.jp … 技術評論社
gihyo.jp/book/2011/978-4-7741-4897-7

656 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:25:33.82 ]
今さら感があるけど、Emacs Lispで書かれたライブラリとかプログラムのことを
単に「Emacs Lisp」と呼ぶ習慣はそろそろみんなに考え直してもらいたい



657 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 02:05:26.45 ]
>>656
なんて言えばいいの?

658 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 07:44:35.83 ]
> poj-mode.el is an emacs lisp for POJ

小文字で書けばいいのかと問いたい

659 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:25:37.08 ]
>>656
「elispアプリ」とか「elispライブラリ」とか言えっての?


660 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:43:40.58 ]
公式な呼び名は無いの?

概念的に近いのはブラウザの拡張とかかなぁ。
歴史的経緯を無視するならエクステンションとかプラグインとか呼ぶのが妥当だと思う。
使われている言語が Emacs Lisp なのは、
たまたま Emacs がそういうものだという実装に立ち入る話なので、
ユーザーに見せるべき筋合いのもではない。

661 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 02:28:09.29 ]
Emacsスクリプトでよくね?

662 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 03:01:18.58 ]
マニュアルを読みなよ

663 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 04:49:59.57 ]
>>660
> 使われている言語が Emacs Lisp なのは、
> たまたま Emacs がそういうものだという実装に立ち入る話なので、
> ユーザーに見せるべき筋合いのもではない。
 むしろユーザーが容易にみれる、弄れる、スクリプトを組めるという仕様で人をスクリーニング
しているのがemacsの良さなんじゃないの。Firefoxのエクステンション的使い方で敷居は低い
けど、emacs lispの書き方を覚えたら自分の使いやすいように弄りたいという野心がユーザーの
大多数の中にあるんじゃないかな。
 自分はそういう野心を持ってFirefoxを使っていないなあ。

664 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:57:58.95 ]
ブラウザだとgreasemonkeyが近いな
お手軽で重宝してる

665 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 21:19:58.90 ]
>>661
一票。

666 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:43:03.03 ]
スクリプトには違和感ありまくり
elispプログラムかパッケージで



667 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:53:56.79 ]
マニュアルでは大体libraryかpackage(かfile)だけど、別に厳密な定義はない
明確な機構で管理されてないこととも多少関係あるかも

668 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:01:29.59 ]
xyzzyというEmacs風エディタの界隈で「拡張lisp」という言葉を見て
ちょっと混乱した

669 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:17:32.81 ]
magit という一個の package があったとして、
その中核となるファイル群の集合を指して library
その集合の中の .el ファイルそれぞれが program
とかそんな感じでは

670 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 03:07:27.20 ]
locate-libraryは一つのファイルをライブラリって表現してるってことだよな

671 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 02:34:06.42 ]
APEL の README だと
Emacs Library や モジュール や ユーティリティー といった言葉が使われてる。
MULE プログラム や CCL プログラム って言葉も出てくる。

672 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 04:04:27.57 ]
マクロでいいじゃん

673 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:19:18.49 ]
>>672
defmacro以外で書いてある部分はどう呼ぶんだ?


674 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:01:47.78 ]
それもマクロでいいじゃん

675 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 02:16:46.62 ]
よくねえよwww

676 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 19:38:59.29 ]
Emacs lispの他にマクロが装備されてるじゃん



677 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 00:02:21.53 ]
elispはemacs自体を作るための言語だしなw

678 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:26:25.14 ]
>>662
正解

EmacsはelispとCで出来てるので、Cの用語と調和できる表現が理想かと。
なのでマクロは…

679 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 08:38:22.22 ]
>>672 defmacro で定義するマクロはなんて呼べば良いの?


680 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 11:49:43.28 ]
Editor MACroS

681 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:32:52.18 ]
>>680 Editing MACroS は TECO のマクロパッケージだ



682 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:02:07.70 ]
emacsがたまたまlispで云々とか笑うなw
gosmacsとmock lispに切れたlisperのストールマンが
作った最強のlisp環境兼エディタなのにw

683 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 23:05:57.06 ]
>>682
Unipressの売り物になったから切れただけだろ


684 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 17:16:00.68 ]
そういやそうだったかも
でもMockじゃなくて
ちゃんとしたlisp使いたくて
弄ろうとしたんじゃなかたっけ
ある意味gosmacsはGNUの生みの親だなw

685 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:14:50.83 ]
最初gosmacsベースでGNU Emacs作っていて、
そんときは別に切れてない。
そのあとGoslingがgosmacsの権利売ったから切れた。

686 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 00:00:16.59 ]
Emacsのアプリだからeアプリ

これでいいよ.

iアプリと似てるから世間で流行るかも知れん.
e電と同じく廃れるかも知れんけど.




687 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:45:01.23 ]
だいたいeはすぐ終わるな
なぜかiは長生きする

688 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 03:05:15.28 ]
アンビバレンツなIE

689 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 08:21:48.92 ]
大衆向けGUI付きのインストールシステムが無いからこれといった名前もないんだろうな
そういうシステムの用語としてはパッケージってだいたい言うんじゃね?
Emacs NetInstaller Packageということでどうか

690 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 10:39:04.45 ]
>>687
つ email

691 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 15:47:27.09 ]
基本的にはlibraryなんだよ。ほぼ関数の塊で、
キーの割り当ては個人設定まかせだったりするでしょ。

692 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:25:11.12 ]
emacsのevernote-mode.elで質問です。
69行目にdefmacroで
enh-command-with-authというマクロを宣言しているのですが
最初のローカル宣言で
`(let (error-code (try-func (lambda () ,@body)))
上のようになっています。
letといったら
(let ((変数宣言)) 式)
と言った形になると思うのですが、このマクロでは、
突然、宣言も何もやっていないerror-codeが出てきています。この部分では何をやっているのか知りたいです。
また、try-funcも上のlisp
後に(funcall try-func)という記述がありますので、普通の関数なのかと思い調べたのですが、見つかりません。try-funcとはなんなのかも分からなくて困っております。
どうか教えていただけますでしょうか、よろしくお願い致します。

693 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 00:55:00.25 ]
>>692
> let is a special form in `C source code'.
>
> (let VARLIST BODY...)
>
> Bind variables according to VARLIST then eval BODY.
> The value of the last form in BODY is returned.
> Each element of VARLIST is a symbol (which is bound to nil)
> or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).
> All the VALUEFORMs are evalled before any symbols are bound.

だからerror-codeにはnilが束縛されて、
try-funcに(lambda () ...)が束縛される。

普通の関数は(funcall try-func)として実行できない。
try-funcが評価されて返ってきた関数を実行する。

694 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 01:16:52.08 ]
>>693
お早い回答ありがとうございます!!
探しても載ってないletの取扱い方があるのかと思っていたのですが
そのままの文法にしたがって解読すればよかったということですね。
また、funcallの使い方も勘違いしておりました。
try-funcの定義部分を探して読めば問題ないということですね!
大変助かりました。
ありがとうございました!

695 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 10:48:46.39 ]
探してというかマクロの引数。
command実行をauthでラップしてるんでしょ、どうせ。

696 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 22:57:34.38 ]
WEB+DBの最新号、関数型言語入門を山本和彦が書いてるのを立ち読みして来た
けど、LISPに関する文章が悲しくて泣けた
Mewの開発者があれではなあ



697 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 23:14:04.60 ]
>>696
マルチうぜぇ

698 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/03/04(日) 18:32:07.94 ]
>>696
「リスト遊び」のときからわかってることを今更マルチで書き込んでやるなよ


699 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 19:15:58.06 ]
かずさんはHaskell厨だからな

700 名前:デフォルトの名無しさん [2012/03/09(金) 07:48:01.98 ]
Meadowでget-buffer-createしたバッファに
while回しながら見つけたファイルの名前と中身を
insertしようと

(if (file-exists-p filename)
(progn
(insert filename)
(insert-file-contents filename))
)

と書きましたが、書き込みがバッファされているようで、先にファイルの中身が
全部インサートされて後から(insert file)の結果がまとめてインサートされているようです。

(insert filename)
(sit-for 0)
(insert-file-contents filename))

とかやれば、そこでフラッシュされるかなと思ったのですが、
それもダメでした。何かいい方法はないでしょうか。


701 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 10:54:52.36 ]
>>700
バッファされてるんじゃなくてpointがダメな気がする。
insertとinsert-file-contentsはpointからデータを挿入するけど、
insert-file-contentsの方は挿入した後pointを動かさないから、
(goto-char (point-max))とかしてみたらどうかね。

702 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:25:16.80 ]
強制描画させるのなら、sit-forではなくて redisplay, redraw-frame, redraw-display とかは?

703 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 13:40:54.66 ]
実践Emacs入門読んだ。
elispを関数型言語って言ってるんだけど
誤記たよね?

704 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:06:39.05 ]
今出てるWEB+DBの記事の定義に従えばそうだね

でも、↓ではCLがHaskellと同列に書いてあるし、
en.wikipedia.org/wiki/Functional_programming
functional flavor languageで初期LISPも紹介してあるから、そんなに目くじらたてるほどでもないんじゃないの

705 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 14:15:26.74 ]
単に初期のLispじゃなくて、マッカーシー先生が論文中で示した、
理論的なモデルのことを指してるんじゃないかなそれは。

706 名前:704 mailto:sage [2012/03/09(金) 16:37:17.52 ]
そうなんだ



707 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 18:00:53.80 ]
で、実装しちゃったのがスティーブ・ラッセル氏

708 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:38:23.01 ]
るびきちの「Emacs Lispテクニックバイブル」ってこのスレの人的には
評価どうなん?

709 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 05:50:32.97 ]
Emacsテクニックバイブルとは別の本だということを知らなかった

710 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 08:55:56.58 ]
>>701
遅くなりましたが、そのとおりでした。ありがとうございます。
>>702
何かのときのために覚えて起きます。

711 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 10:00:02.54 ]
るびきちって、るびーきち○いだった人?

712 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:26:39.59 ]
> るびきちの「Emacs Lispテクニックバイブル」

内容以前に文章が稚拙すぎると思った。


713 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:44:11.30 ]
いいじゃない。頑張って書いてるんだから。何処かの翻訳本とかの何書いてるか分からないよりはまし。
本書いたことがないとどれだけ大変か分からない。

それとも、お前サバンナでも同じ事言えんの?

714 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 13:54:05.09 ]
>>713
サバンナ?わからない。
上の本に関してはどこか作者の心の乱れみたいなのを感じちゃって
正視に耐えなかった。


715 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:08:06.87 ]
             ,,ト、,, ,,ィ ,ィ
           _,,-;" '' ゛''" ゛';__
           ヽ/""゛゛''`';, ノr´)
          ,;'゛/__   _ "iヽ;ミ    お前ってアレだよな…
          ,,'"|( d  /oノ ド゛ `ミ   サバンナじゃ真っ先に死ぬタイプだよな
         r ";,| ▼    ド゛ `ミ
        (`ヽ';ヽ_人__ノ  /  ,,ミ゛、
         ヽ、 '';,i⌒⌒  /   リ  ヽ、
         /` ィ'r`''''""´  ,,ミ゛    |
        /   | ゛r、ノ,,トリ'"  i    |
        /   |          |    |
 ̄ ̄ ̄ ̄ ̄i   ノ ̄ ̄ ̄ ̄ ̄ ̄/   ノ ̄ ̄ ̄ ̄
        `ー ´        /  /
                ,-ー´  /
               ((_(_(_ノ

716 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:11:30.45 ]
savannah.gnu.org



717 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:27:06.17 ]
Emacsはサバンナやったんや

718 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:14:00.00 ]

               , -――- 、
              /       ヽ
              | ノ  ー    |   それっておかしくねぇ?
              |(・) (・)   |   だって、ここ2chじゃん
              |  (      |
              ヽ O    人
               >ー-― ´   ̄ ̄\
  ⊂ニニ ̄ ̄ ̄ヽ  /              |
     くメ) _ノ  |  |  |        |   |
       (/  |  | /  |        |   |
          |  |/  /|        |   |
          |  ト  / |        |   |
          ヽ__/ |        |   |

719 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:15:13.34 ]
氏の文章は論理的でなく読んでいて苦痛ですらある
Emacs Lispテクニックバイブルp. 82から引用してみよう

> 2-11-1 Lispファイルの置いているディレクトリを指定する
>
> ロードする方法を解説する前に、elispの置いてあるディレクトリを
> 指定しなければなりません。それを指定することで、ロードするときに
> Lispファイルのディレクトリ名を指定する必要がなくなります。

解説するのは誰か、ディレクトリを指定するのは誰か
本当に「しなければならない」のか

こういった論理の乱れが作用し読者はいつしか電波を発するようになるのである

720 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:37:12.21 ]
分かりにくいかもね。後半の文は要らんかったかもね。
どんな表現だったら良かったんだろうね
編集さん大変だったろうなあ

721 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:49:21.27 ]
その人の本は読んだことは無いがそこをさっと目で流した限り、
一般的に言うところの”パスを通す”と似た様な事をするんだろうなと読め、そんなに引っかかりは感じなかった。
精読や多読していくと違和感を感じるんだろうか。

722 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 15:57:55.82 ]
俺文書くのうまいぜっていう人ほど客観的になれなくて、
負けず嫌いだったりすると周りの言う事聞かなくなるからなあ。
小説の読み方の教科書とか

723 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 16:03:04.03 ]
>>719
お買い上げありがとうございます。

724 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:24:23.47 ]
>719の文章は、「ロードする方法をさっと解説してからパス通すことを
教えた方が必要性が分かりやすくていいんじゃね」とか突っ込まれたときに
受け入れることも無視することもできなかった結果の産物っぽく感じる

だから、単に言うこと聞かずに我が道をゆく方がマシだったんじゃね
従わないけど聞かずにはいられないってタイプがもっとも支離滅裂な結果になる

>>721
基本的に著者の書きたいことを分かってる場合は(著者と同じく)おかしさを感じにくいからな
そういう脳内変換は2chやネットの文章あさるには必須の技能でもあるし

725 名前:デフォルトの名無しさん [2012/03/10(土) 17:24:55.22 ]
elispの置いてあるディレクトリを指定することで、ロードするときにLispファイルの
ディレクトリ名を指定する必要がなくなります。
ロードディレクトリの指定は必須ではありませんが、
以降はロードディレクトリを指定した前提でロードする方法を解説します。




どう?


726 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 17:39:27.49 ]
>>725
その文章の方がいいことを説明する前に、>>719の方が圧倒的に面白い。



727 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 18:55:53.69 ]
「るびきちは文章が下手で読むに耐えない」
2ちゃんでは珍しくはっきりした結論がでたな
「理科系の作文技術」でも読んで寝るわ

728 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 19:59:39.57 ]
ちょっと前まではこの手の話題になると
ねたみ酷いって書き込みが入ったものだが


729 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 21:03:33.05 ]
その時もあんな酷い文例貼られてた?

730 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:03:22.91 ]
>解説するのは誰か、ディレクトリを指定するのは誰か
解説は本の役目で指定するのは自分、これ以外どう解釈するんだ?

731 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:22:48.16 ]
> ロードする方法を私が解説する前に、elispの置いてあるディレクトリを
> あなたは指定しなければなりません。それをあなたが指定することで、ロードするときに
> Lispファイルのディレクトリ名をあなたが指定する必要がなくなります。
はっきりさせるとむしろおかしくね?w

732 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:24:37.67 ]
>>730
本人乙。そう解釈せざるをえないのだが、
| (本が)ロードする方法を解説する前に、(あなたは)elispの置いてある
| ディレクトリを指定しなければなりません。
一つの文で主語が切り替わるからイラつく。

733 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:25:21.44 ]
>>730
複文かつねじれた文ってやつだよ
大卒ならみんな知ってる

734 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:30:04.29 ]
>大卒ならみんな知ってる

あほすぎ。なんか Emacs スレみたいな感じになってきたね。
あっちスレの誰かがやってきたのかな?


735 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:43:07.93 ]
>>734
まあそうだね。>>733は引っこめるよ。すまなかった

736 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 22:51:18.59 ]
大卒じゃなくても…とか大卒でも…とかマジレスしようと思ったけど
もしかしてその著者が大卒じゃないとかそういう流れでのレス?



737 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:32:52.39 ]
るびきちは一応大卒だったと思うが
>【著者紹介】 るびきち
>早稲田大学大学院理工学研究科修士課程修了。

738 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 23:58:34.13 ]
なんか臭い。

739 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:24:24.11 ]
じゃあべつにジョークでもなかったか
素直に735の意に従うべきだったな

740 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:51:16.12 ]
何かを作ったことが無い人は「これくらいなら自分でも本気出せば作れる」と思ってる

741 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:54:32.63 ]
この程度なら、と思わせる文章の酷さ。

742 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:59:10.07 ]
>>740
あるあるすぎて困るけど作品の批評とはまた別の話

743 名前:デフォルトの名無しさん [2012/03/17(土) 14:27:29.00 ]
質問です。2つのOCRした文章に、大きな違いが無いことを確認するために
*ediff control panel*で
(defun my-ediff-make-fine-diffs-all ()
(interactive)
(let ((i 0))
(while (< i ediff-number-of-differences )
(ediff-make-fine-diffs i)
(setq i (1+ i))
)))
として overlay で違いを強調するところまではやったのですが、
overlayのままでは、enriched-mode で保存も出来ないので、
overlay を text-property に変換して enriched-mode で保存できたら
いいなと思ってるんですが、どうすればいいでしょうか。
文章が長いのとOCRのノイズが多いので、手ではやりたくありません。

よろしくお願いします。

744 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 16:48:20.69 ]
next-overlay-changeとかでバッファの先頭からループして
テキストプロパティに変換して削除して回るだけっぽい


745 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 17:39:46.40 ]
>>744
www.gnu.org/software/emacs/manual/html_node/elisp/Finding-Overlays.html
の find-overlays-specifying を見てたんですが、
(overlay-get overlay 'face) とかでどんな overlay かは返ってきますね。

するとこれをスタックに積んで始まりと終わりが分かったら
そこを変換しろと言う訳ですね。ちょっとやってみます。
また分からなかったら質問します。ありがとうございます。

746 名前:デフォルトの名無しさん [2012/03/21(水) 23:49:54.13 ]
deを含まないabcを探索したいのですが、以下でうまくいきません。
もしかして、emacs lispで「?!」は使えないのでしょうか?

(re-search-forward ”abc(?!de)” nil t)



747 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 00:16:43.92 ]
Infoぐらい読もう。
(info "(elisp)Syntax of Regexps")

748 名前:746 mailto:sage [2012/03/22(木) 01:07:53.55 ]
>>747
special charactersに「!」が含まれていないので、
使えないという理解でいいんですよね?

うーん、書くのが面倒くさくなるなあ。

749 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 02:16:32.52 ]
>>746
バックスラッシュが括弧に必要

750 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 08:31:18.61 ]
>>749
拡張正規表現の話だぞ。

751 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 13:49:33.36 ]
>>750
すまん。Emacsに先読みが無いことに今気がついた。
普通は後続の正規表現を指定するか、単語境界いれるからあんまり使わないんだよね

752 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 16:17:30.37 ]
elispは拡張正規表現をサポートしていない。

代替するとこんな感じか?わっかりにっきーな
(re-search-forward "abc[^d]\\|abcd[^e]\\|abc$\\|abcd$")

753 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 21:46:10.19 ]
>>752
「拡張正規表現」の定義によりますよ。

754 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:06:24.54 ]
言いたいことあるなら中身まで言えば良いのに

755 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 22:12:46.02 ]
>>750
emacsの正規表現でグループ化するには(をエスケープして\(としてやらないといけない
しかし単に"\("と書いてはいけない。
"\("が文字列として評価され(になり、その(が正規表現に渡されてとして評価される
正規表現に\(を渡したい時は文字列"\\("としないといけない

756 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:15:18.09 ]
>>755
エスケープはわかったからさ。>>746
> deを含まないabcを探索したいのですが
これをemacsの正規表現で書いてくれや。



757 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:36:29.29 ]
サーセン

758 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:24:07.87 ]
>>756
>>753

759 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:20:20.63 ]
?
emacsの正規表現って定義あるよね?

760 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:21:27.61 ]
Perl/Ruby/Python/TclとかにあるNegative lookahead (?!re)はemacs lispには無いはず。
emacs24とかは知らんが。

abc(?!de)は、"abcxxxx" の最初の "abc" とマッチするんだよね。
>>752のは "abcx"とマッチすることになるから微妙に違ってくる。
emacs lispでは、ひとつの正規表現だけでは、これと同じことはできないんじゃないの?

761 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:31:35.63 ]
vim なら abc\(de\)\@! でできる。
Emacs の正規表現の貧弱さにはいつもイライラする。


762 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 05:17:04.56 ]
鬼車導入と新たな正規表現リテラルの導入かねやっぱり

763 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 10:03:06.08 ]
今更エンジン変更とか新しくPEG導入するよかコストかかりそう

764 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 13:45:33.85 ]
正規表現をPCREに変えろという話が本家で出ては消え、出ては消え・・・
本気で変えたいんならレキシカルスコープ変数やった人みたいに、
専用ブランチ作ってマージして、互換性の問題などを検証してみんなを納得させないといけない。
PEGはもういくつか実装あるような希ガス

765 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 15:24:09.42 ]
ELisp の場合、正規表現を特別扱いするような文法はないから、単に新しい関数群を導入すれば互換性は壊さずに済むよ。
pcre-search-forward や pcre-match-string みたいな。


766 名前:デフォルトの名無しさん [2012/03/24(土) 19:29:57.02 ]
以下の設定で、open -gとしてバックグランドで開きたいのですが、どのように書けば"-g"オプションを渡せますか?
(setq browse-url-generic-program "/usr/bin/open")



767 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 19:39:48.53 ]
browse-url-generic-args ってそれ指定するための変数じゃねーの?しらんけど

768 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 20:04:29.09 ]
>>767
(setq browse-url-generic-args (list "-g")))
でうまく行きました。ありがとうございます。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef