Функциональное программирование - Большая Энциклопедия Нефти и Газа, статья, страница 2
Железный закон распределения: Блаженны имущие, ибо им достанется. Законы Мерфи (еще...)

Функциональное программирование

Cтраница 2


В новом классе вычислительных систем стиль функционального программирования используется и в языке программирования, и в правилах перехода между состояниями. В отличие от языков фон Неймана в этих системах семантика слабо связана с состояниями - в течение большого вычисления происходит только одна смена состояний.  [16]

Программная реализация ГЭС осуществлена на языке функционального программирования С. Все вышеуказанные режимы работы для всех типов пользователей с ГЭС ( см. разд. РБЗ, системы поиска противоречий, БВР), которые связаны друг с другом только потоками входной и выходной информации.  [17]

Лисп представляет собой язык так называемого функционального программирования. Он основан на алгебре списочных структур, лямбда-исчислении и теории рекурсивных функций.  [18]

Кроме приведенного в первой части книги функционального программирования Лисп поддерживает также другие методы и стили программирования, важнейшие из которых мы рассмотрим в следующих главах. Лисп является одновременно и прекрасным рабочим инструментом, и формализмом, с помощью которого можно обучать, исследовать и развивать дальше различные методы и связанные с ними понятия.  [19]

Во второй части книги наряду с функциональным программированием изложены основные методы, применяемые в решении задач искусственного интел - - лекта. Среди них операторное и процедурное программирование, программирование, управляемое данными, сопоставление с образцом, ситуационное и продукционное программирование, а также объектно-ориентированное и логическое программирование. Текст дополнен примерами практического программирования.  [20]

Мы в значительной степени обязаны членам секции функционального программирования Империал-Колледжа за многочисленные предложения и замечания по материалу этой книги. Мы бы хотели особо поблагодарить Хелен Пулл и Линдона Уайла, посвятивших многие часы чтению черновиков и сделавших множество конкретных и существенных замечаний, оказавшихся весьма ценными.  [21]

Те читатели, которые уже знакомы с функциональным программированием, могут пропустить большую часть текста и вместо этого обратиться к приложению А, где дано краткое представление основных характеристик языка Норе.  [22]

Ныне его научные интересы включают типы данных для функционального программирования, алгебраические преобразования программ и оптимизацию. Совместно с Джоном Уильямсом и Эдвардом Уимерсом он разработал новый язык программирования FL.  [23]

Для полного использования достоинств ЯФП создана адаптируемая система функционального программирования ( АСФП) 73 ], ориентрированная на работу с объектами произвольной структуры, определяемой пользователем. Эта система базируется на формальной модели рекурсивных схем программ, дополненной механизмом задержки вычислений.  [24]

На этом завершается наше обсуждение различных альтернативных стилей функционального программирования. Другим примером является ML [36], хотя он содержит некоторые черты императивных языков, делающие его непрозрачным по ссылкам. Однако, как и для загрязненных диалектов Лиспа, эти нефункциональные особенности можно легко игнорировать.  [25]

В некоторых особенно мощных языках, известных как языки функционального программирования, основные операторы определены в терминах функций. Главная особенность таких языков - возможность построения новых, более сложных, операторов из основных. Чтобы уметь это делать, нам необходимо в совершенстве овладеть композицией функций. В приложении к этой главе как раз и будет проиллюстрирована такая необходимость.  [26]

Одно из значительных мест в исследованиях по теоретическому программированию занимает функциональное программирование. Ведущиеся в течение уже трех десятилетий разработки в этой области в последнее время имеют устойчивую тенденцию к расширению.  [27]

Первая часть этой книги достаточно полно знакомит читателя с основами функционального программирования, и мы можем сейчас описать различные методы, используемые для реализации функциональных языков. Для того чтобы сохранить общность в наших рассуждениях, мы будем использовать специальную нотацию для функциональных выражений, которая является достаточно мощной, чтобы выразить все черты функционального языка, и в то же время достаточно простой, чтобы легко описать различные методы реализации без рассмотрения специфики исходных языков. Промежуточная нотация, которую мы будем использовать, называется лямбда-нотацией и происходит из области математической логики, называемой лямбда-исчислением, на котором основаны многие теоретические результаты в области функциональных языков. Часть II начинается с введения в лямбда-исчисление, где описывается синтаксис лямбда-выражений, а также правила переписывания, специфицирующие индивидуальные шаги, требуемые для вычисления, или редукции, заданного лямбда-выражения. Самое важное из этих правил, называемое р-редукцией, выражает в лямбда-исчислении применение функции. Неформально роль р-редукции состоит в том, чтобы заменить каждое вхождение формального параметра функции соответствующим параметром. Фактически в основе любой реализации лежит порядок, в котором выполняются последовательные р-редукции, и условия, при которых последовательность редукций завершается. Вообще говоря, существуют два пути выполнения р-редукции: мы можем либо оставить ссылку на формальный параметр без изменений, но запомнить обозначаемую ею величину в отдельной структуре данных, либо выполнить подстановку, которая физически заменяет ссылку на параметр его фактическим значением. Эти два подхода ведут к реализациям, основанным на контексте и копировании соответственно.  [28]

Основное внимание будет сосредоточено на главном для Лиспа способе так называемого функционального программирования и описании его отличий от традиционного операторного стиля программирования.  [29]

В последующих разделах мы более подробно рассмотрим использования рекурсии и техники функционального программирования Б Лиспе.  [30]



Страницы:      1    2    3    4