Emacs で何かの値段でも,カロリーでも,何でもいいや,何かをリストアップしているとします.
1435 1350 2300 1350
急に合計したくなりました.ただし Emacs しか使えません.さてどうしますかね.
これだけなら lisp interaction に移って
(+ 1435 1350 2300 1350 )
とかするのが楽かな.
じゃあ,品名も書いてたらどうしましょう.
a 1435 b 1350 c 2300 d 1350
kill-rectangle/yank-rectangle でいいじゃん,てのは敗北くさいので,ちっと関数でも書きますかね.
(defun tmp-sum2 (xs) (if (null xs) 0 (+ (cadr xs) (tmp-sum2 (cddr xs))))) (tmp-sum2 '( a 1435 b 1350 c 2300 d 1350 ))
2 列の代わりに n 列にするとか,n 列の m 列めにするとか,いろいろ一般化できるけど,nthcdr 使えばいいだけなので省略.
じゃあ,単価と数量だとしてみようか.
a 1435 2 b 1350 1 c 2300 1 d 1350 5
んー,こうか.
(defun tmp-sp23 (xs) (if (null xs) 0 (+ (* (cadr xs) (car (cddr xs))) (tmp-sp23 (nthcdr 3 xs))))) (tmp-sp23 '( a 1435 1 b 1350 2 c 2300 4 d 1350 2 ))
何か機械的拡張になってきたな.飽きた.
こういうことをもっとお手軽にできるものって,Emacs にはないのかな.あるいは elisp でもっと簡潔に書けたりするんだろうか.
dismal っていう表計算パッケージがあるらしいけど,ちょっと求めているものとは違う感じ.
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2000 : 01 02 03 04 05 06 07 08 09 10 11 12
1999 : 01 02 03 04 05 06 07 08 09 10 11 12
1998 : 01 02 03 04 05 06 07 08 09 10 11 12
1997 : 01 02 03 04 05 06 07 08 09 10 11 12
1996 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2012-02-13 02:02