print "   yes:", query 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

print "   yes:", query

Поиск

WHO = Var()

 

queries = [mortal('Socrates'), man(WHO), mortal(WHO)]

 

for query in queries: print "?", query for _ in query():

 

print "   yes:", query

 

Что выдает результат:

 

? mortal(Socrates)

 

yes: mortal(Socrates) ? man(_)

yes: man(Socrates) yes: man(Democritus)

? mortal(_)

yes: mortal(Socrates) yes: mortal(Democritus)


 

 


Разумеется,это не"настоящий" Prolog,но с помощью модуля pylog любой,кому требуются

 

логические возможностиPrologвPython,может написать программу с использованиемProlog-синтаксиса.

 

OCaml

 

Язык программированияOCaml -это язык функционального программирования(семействаML, что означает Meta Language), созданный в институте INRIA, Франция. Важной особенностьюOCamlявляется то,что его компилятор порождает исполняемый код,по быстродействию сравнимый с С,родной для платформ,на которыхOCamlреализован.В то же время,будучи функциональным по своей природе,он приближается кPythonпо степени выразительности.Именно поэтому дляOCamlбыла создана библиотека Pycaml,фактически реализующая аналогC APIдляOCaml.Таким образом,в программах наOCamlмогут использоваться модули языкаPython,в них даже может быть встроен интерпретаторPython. Для Python имеется большое множество адаптированных C-библиотек , это дает возможность пользователямOCamlприменять в разработке комбинированное преимуществоPythonиOCaml.Минусом является только необходимость знать функцииPython/C API, имена которого использованы для связи OCaml и Python.

 

Следующий пример(изPycaml)показывает программу дляOCaml,которая определяет модуль дляPythonнаOCamlи вызывает встроенный интерпретаторPython:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 160; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.007 с.)