Drkcore

19 04 2007 SICP elisp Tweet

SICP 演算子に合成式

elispでSICP

SICPの問題1.5は演算子を合成式にできることを確かめましょうという問題なのだけど、elispだとどうもうまくいかない。

結局演算子をクォートして、consでリストにして作ったリストをevalで評価するようにしてみた。

defun a-plus-abs-b (a b)
 (eval (cons (if (> b 0) '+ '-) '(a b))))
a-plus-abs-b

(a-plus-abs-b 10 5)
15

(a-plus-abs-b 10 -5)
15

でもこれだと演算子を合成式にできるっていうイメージとまるでかけ離れてるなぁ

ProductName 計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン
ピアソンエデュケーション / 4830円 ( 2000-02 )


Gaucheもやっぱインストールしておくべきだろうか?

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021