Difference between revisions 73481 and 73482 on ruwikibooks

{{Информация об авторе|Грэм Хаттон (Graham Hutton)|Университет Ноттингема, Великобритания|[mailto:[email protected] [email protected]]|[http://www.cs.nott.ac.uk/~gmh Личная страница Грэма Хаттона]}}

==Предисловие==

(contracted; show full)

==Комбинаторные  парсеры==
Приступим к рассмотрению основных идей комбинаторного синтаксического анализа. Практически  мы определим типы парсеров, три простых парсера, и два примитивных комбинатора для строительства больших парсеров.

===Типы парсеров===
Давайте рассмотрим парсеры как 
о функции, которые берут на входе строку символов  и выдают некоторый тип дерева в качестве результата, таким образом, что дерево представляет грамматическую структуру строки:

 <code>type Parser = String -> Tree</code>

В общем, тем не менее, синтаксический анализатор может не поглощать всю входную строку, так что даже если результатом парсера является просто дерево, все равно мы возвращаем необработанный конец входной строки. Таким образом, модифицируем тип парсера следующим образом:

(contracted; show full)functional programming.
Wadler, Philip. (1992a). The essence of functional programming. Proc. principles of
programming languages.
Wadler, Philip. (1992b). Monads for functional programming. Broy, Manfred (ed), Proc.
Marktoberdorf Summer school on program design calculi. Springer{Verlag.

[[Категория:Функциональное программирование]]
[[Категория:Статьи по функциональному программированию]]