タグ

funcallに関するnabinnoのブックマーク (4)

  • Emacs Lisp の構造化 - あどけない話

    忌み嫌われているグローバル変数/関数をなるべく使用しないために、もう一つ小さな空間を用意している言語があります。僕のイメージでは、この空間はゆりかごです。ゆりかごの実現方法として、以下のようなものが挙げられるでしょう。 C++Java ならクラス JavaScript なら関数、あるいはオブジェクト・リテラル Scheme なら手続き(関数) Emacs Lisp も Lisp なんですから、ある関数をゆりかごにして、中に関数を定義したいところです。でも、これはできません。さて、どうするかという話です。 defun で defun defun の中で defun したいところですが、これはうまく行きません。外側の関数が実行されると、内側の関数がグローバル空間に定義されてしまうからです。 (defun foo (n) (defun bar (n) (1+ n)) (bar n)) (fbo

    Emacs Lisp の構造化 - あどけない話
  • apply と funcall の違いというか使い分け - むしゃくしゃしてやった

    はまったのでメモ。 message のような可変長引数 (?) をとる関数に対して、 funcall を使用すると &rest 以下の引数がうまいこと処理されない。 (defun hoge-funcall (string &rest arg) (funcall 'message string arg) ) (hoge-funcall "aa%s" "bb") ; => "aa (bb)" リストとして渡されてしまうところに問題があるっぽい。 リストを展開すればいいのかと思ってリスト操作系の関数を調べてもそれらしいものがない。 なので funcall についてマニュアルを調べたら、 http://www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_12.html#SEC165 直後に apply についての説明が! 説明と例をみてもわからなか

    apply と funcall の違いというか使い分け - むしゃくしゃしてやった
  • Eval error - Wrong type argument: listp

  • HOME > 電算 > Emacs メモ

    HOME > 電算 > Emacs メモ Emacs メモ 最終更新:2008/01/30(水) 目次 キーバインディングの変更 タブ map 関数で面くらうこと 縦書きポストスクリプト・ドライバ Emacs Lisp Emacs キーバインディングの変更 変更内容による難度(?)の違い 何(どういうコマンド)をどこ(どのキーシーケンス)に割り付けるかで、 やり方が異り、必要とされる技にも違いがある。 (a) 既存のコマンドを、 「Ctrl-c を押してから一文字を押す」というユーザ予約キーシーケンスに 引数を与えないで割り付ける。→ 簡単(以下を読むまでもなし) 例 (global-set-key "\C-ca" 'fill-region) (b) 既成のコマンドに引数を与えて割り付ける → 説明が必要(ラムダ式など) 例 (global-set-key "\C-ca" (lambda

  • 1