Julia の多重ディスパッチを使って木構造で表現される数式を評価する
はじめに
以前,遺伝的プログラミングを実装したとき,木構造で表現された数式を評価する処理を,再帰を使って書いたことがありました.
よく考えると,多重ディスパッチも使うとスッキリ書けそうだなと思ったので,試しにやってみました.
実装
演算子,変数,定数となる頂点の型(構造体)を定義して,それぞれの型ごとに関数を定義してやるだけです.
変数と,変数に代入する値はディクショナリで管理しています.
以前,遺伝的プログラミングを実装したとき,木構造で表現された数式を評価する処理を,再帰を使って書いたことがありました.
よく考えると,多重ディスパッチも使うとスッキリ書けそうだなと思ったので,試しにやってみました.
演算子,変数,定数となる頂点の型(構造体)を定義して,それぞれの型ごとに関数を定義してやるだけです.
変数と,変数に代入する値はディクショナリで管理しています.