やっぱり動的言語では安全なソフトは作れない 4
■ このスレッドは過去ログ倉庫に格納されています
0208デフォルトの名無しさん
2011/09/21(水) 04:52:32.82質問は 型 = 構造体の形式 と解釈しているようですが、
1) Prologの引数にはリスト以外の複合項(構造体)がこないというのは「作法」であって、
Prologの規則ではない。プログラマによっては、あるいはアプリケーションの要請で
引数として複合項を渡すことはないわけではありません。
2) リスト以外の複合項が引数として現れず、すべてアトムまたは変数だとしても、
a) foo(四季:X)
b) foo(X) :- member(X,[春,夏,秋,冬]), ...
a)は、Xがアトミックなデータしか取ることがなくても、型付することが可能なことを示しています。
Prologはb)を採用している訳で、このことが動的で型付けなしの意味です。
ただし、Prologの単一化を安全で強い型付けと解釈する向きもあります。これは上の「作法」には
反しますが、呼び出され側の引数に構造体を置いた場合、呼び出し側の引数の構造体の細部まで
形式検査を完全に行うことになるからです。
■ このスレッドは過去ログ倉庫に格納されています