[Next]事実や規則の登録 [Previous]定義 [Up]PoPの使用方法 [Top]

暗黙的変換

上で説明したように,PoPに渡すデータは,PoPオブジェクトに変換しなければなりません. しかし,それだと大変なので,変換を省略できる場合も多くあります.
以下の場合には,引数に指定された整数,浮動小数点数,リストは暗黙的にPoPオブジェクトに変換されます. 例えば
Atom('a', 3, 'xyz')
とすれば,3や,'xyz'は暗黙的に変換されます. すなわち,
Atom('a', Integer(3), String('xyz'))
と指定されたのと同じことです.

暗黙的変換は,入れ子になっていても働きます.

a = Atom('a')
b = Atom('b')
a(b(5, 8.0), ['abc', 'def'])
であれば,
a(b(Integer(5), Float(8.0)), List(String('abc'), String('def')))
と同じです.

尾部を持ったリストについては,対応する表現がPythonに無いので,

X = Variable('X')
List(5, 'xyz', tail=X)
のように記述します.

暗黙的変換を行うメソッドについては,その都度説明します.

[Next]事実や規則の登録 [Previous]定義 [Up]PoPの使用方法 [Top]