タグ

ブックマーク / qiita.com/kawabata@github (3)

  • Emacs のジェネレータについて - Qiita

    はじめに まもなくリリースされる Emacs 25 の新機能の一つに「ジェネレータ (生成子 generator)」があります。 ( /lisp/emacs-lisp/generator.el/ ) ここでは、機能の概要と利用法について簡単に紹介します。 ジェネレータとは ジェネレータ(生成子 generator)は、関数を呼び出す度に、前回の呼び出した状況を覚えていて、それに基づいて新しい値を生成して返します。 なお、Emacs 25の generator.el では、次々と値を生成する関数はイテレータ(反復子 Iterator)と呼ばれ、イテレータを作り出す関数をジェネレータと呼んでいますが、以下の記事ではまとめてジェネレータと呼びます。 以下に、フィボナッチ数列の指定された番号の値を返す関数の例を示します。 単純な関数の例は以下のようになります。 (defun fibonacci

    Emacs のジェネレータについて - Qiita
    sonota88
    sonota88 2017/07/15
    ジェネレータ
  • Emacs の Major Mode におけるインデント計算を楽にする smie.el - Qiita

    Writing a good indentation function can be difficult and to a large extent it is still a black art. -- Emacs Lisp Reference Manual 良いインデント関数を書くのは困難であり、 現在においても広い範囲に置いて黒魔術である。 ここではEmacs 24.3の新機能である、インデント計算エンジン smie.elを紹介する。 Emacs の Major Mode の実装 Emacs の Major Mode は、様々なプログラミング言語やテキストフォーマット 用に色付けやインデントなどの編集機能を提供する。 Emacsは多くのプログラミング言語用にMajor Mode が用意されているが、例外 もある。また、独自に言語を設計した場合も、Major Mode を自作することに

    Emacs の Major Mode におけるインデント計算を楽にする smie.el - Qiita
  • Emacs Lispの汎変数 - Qiita

    これで a の値は (1 10 3) になります。 この setf は setq の拡張と見ることができ、置き換えることができます。setq では、 x が変数でしたが、 setf では、 (elt a 1) 全体が変数とみなされます。 マクロと特別形式 ところで、Emacs Lisp には、関数に類する機能として、マクロと特別形式(special form) があります。関数は実行時に評価されますが、マクロはコンパイル時に評価されて、式を出力します。また、実行時にはさらに式が評価されて結果を出力します。特別形式は、引数が評価されない場合があります。 たとえば setq は特別形式で、奇数番目の引数は評価されません。(詳細はEmacs Lisp リファレンス・マニュアル 9.2.7 参照) 一方、 setf はマクロです。式がどのようにマクロ展開されているかを確認するには、 macroex

    Emacs Lispの汎変数 - Qiita
    sonota88
    sonota88 2015/01/08
  • 1