|
|||||||
Как происходит передача результатов работы функций в Prolog
Время создания: 14.03.2010 02:08
Текстовые метки: prolog
Раздел: Компьютер - Программирование - Язык Пролог (Prolog)
Запись: xintrea/mytetra_syncro/master/base/0000001453/text.html на raw.github.com
|
|||||||
|
|||||||
Пролог - язык логического программирования, и тут всё возвращает булевые значения. Либо true, либо false. Передача всего остального идёт через переменные, как например тут: squared(X, Result) :- Result is X * X. Сама функция squared может возвращать только значения false или true. Результат функции возвращается через переменную. В данном случае - через переменную Result. Что возвращает предложение: average(A, B, Result) :- Result is (A + B) / 2. improve(X, Guess, Result) :- average(Guess, (X / Guess), Result). ? Ответ: функция improve вернет булевое значение. Если вы обратитесь к improve с явными аргументами, например improve(1, 2, 3), то получите false, ибо 3 не есть результат усреднения чисел 2 и 0.5. Но используется improve именно для получения среднего арифметического между Guess и (X / Guess), передача этого значения осуществляется через переменную Result. Это такая фишка Пролога - можно использовать "функции" как для тестирования утверждений, так и для вычислений, смотря как вызывать. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|