Emacs
Table of Contents
1. Emacsの学習記録
- org-modeを利用して学習。
- htmlへの出力は"C-c C-e" -> h -> o
- org-mode内でのelispの実行は"C-c C-c"で行う。
1.1. Elisp
- グローバル変数 : setq
- ローカル変数 : let
- スコープは()の中だけ。
1.1.1. 四則演算
(+ 1 9)
10
(/ 2.2 2)
1.1
(+ 1 2 (* 3 4) 5 6)
26
1.1.2. 変数
; - (let ((変数名 値))
; 処理1
; 処理2
; ...)
(let ((x 50))
(* x 100)
)
5000
; 2つ以上の変数定義
(let ((price 100)
(tax 1.1))
(* price tax))
110.00000000000001
; 1は実行されるが、値を返すのは最後の結果だけ
(let ((hoge 100)
(huga 200))
(message "1, hoge : %d, huga : %d" hoge huga)
(message "2, hoge : %d, huga : %d" hoge huga))
2, hoge : 100, huga : 200
; 定義した変数を次以降の処理で使用したい時
; let*で変数定義する。
; letの場合は全変数が同時に作成される。
(let* ((a 200)
(b (+ a 20)))
(+ a b))
420
1.1.3. if文
;(if 条件式
; Trueの時の処理
; Falseの時の処理)
(let ((score 80))
(if (>= score 60)
"合格"
"不合格"))
合格
(let ((n 15)) (if (= (% n 3) 0) (progn (message "Fizz") (sit-for 1.0) "割り切れました。") n))
割り切れました。
(let ((temp 29))
(if (>= temp 30)
(progn
(message "暑い冷房ON")
(sit-for 1.0)
"稼働中")
(progn
(message "まだ涼しいぞ")
(sit-for 1.0)
"待機中")))
待機中
(defun air-conditioner (temp)
(if (>= temp 30)
(progn
(message "暑い! 冷房ON")
(sit-for 1.0)
"稼働中")
"待機中"))
air-conditioner
(air-conditioner 35) ;(air-conditioner 20)
稼働中