タグ

ブックマーク / kazu-yamamoto.hatenablog.jp (2)

  • 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 の構造化 - あどけない話
  • 偉大な習慣 - あどけない話

    「僕は、偉大なプログラマなんかじゃない。偉大な習慣を身につけたプログラマなんだ。」 --- Kent Beck 僕の信じた伝説 この一年間、あまりコードを書かずに、たくさんのを読み、勉強ばかりしていました。そして、自分がかなり時代に取り残されたプログラマであることが身に染みて分りました。 僕の信じていたプログラミングの伝説は、こんな感じです。 初期工程で完全な仕様を作れ 実際問題、完全な仕様なんて作れるはずがありません。仕様は変わります。また、時代の変化やユーザの要望の変化により、要求も変わります。ですから、仕様が変わってもよいように、実装に柔軟性を持たせないといけません。 効率第一 大切なのは、コードの分りやすさです。効率はよいが分りにくい大きな関数を書くのではなく、効率はやや悪いが分りやすい小さな関数を書くべきです。関数呼び出しは遅いという伝説もありますが、最近のコンピュータは高速で

    偉大な習慣 - あどけない話
    YasuyukiMiura
    YasuyukiMiura 2008/01/07
    elispのテスト環境についても
  • 1