somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Emacs】lambdaとletによるまとまった処理の即時実行

ilemやC-x C-eでちょっとしたS式を作るときに、まとまった処理をすぐに実行することを知らなかったので、メモします。

lambda関数

lambda関数で作った無名関数を即時実行します。処理内容は、「1 + 2 + 3」の結果表示です。

まずは、引数なしの場合です。

*1
         (+ c 3)
  )
  1 2
)

let関数

let関数は、第一引数で使用する変数を(複数)作成し、その変数を利用する処理を第二引数以降に記述します。

まずは、引数なしの場合です。変数は処理内で作成しています。

(let ()
     (setq a 1)
     (setq b 2)
     (+ a b 3))

次に、引数ありの場合です。

(let *2
     (setq c (+ a b))
     (+ c 3)
)

まとめ

どちらを使ってもいいと思います。関数化したくなったときのことを考えるとlambdaですが、短いのはletですね。

*1:lambda () (setq a 1) (setq b 2) (+ a b 3) ) )

次に、引数ありの場合です。無名関数に引数を定義し、渡しているだけです。

((lambda (a b)
         (setq c (+ a b

*2:a 1) (b 2