<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://pascalabc.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.138.92.85</id>
	<title>Вики проекта PascalABC.NET - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://pascalabc.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.138.92.85"/>
	<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/213.138.92.85"/>
	<updated>2026-04-18T18:20:34Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=721</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=721"/>
		<updated>2009-11-12T09:54:18Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является '''лямбда-исчисление'''. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Для реализации лямбда-исчисления может быть использована библиотека в .NET Framework 4 Beta1 Expression.Lambda. &lt;br /&gt;
 private static Func&amp;lt;object, object&amp;gt; CreateGetter(object entity, string propertyName) &lt;br /&gt;
 { &lt;br /&gt;
   var param = Expression.Parameter(typeof (object), «e»); &lt;br /&gt;
   Expression body = Expression.PropertyOrField(Expression.TypeAs(param, entity.GetType()), propertyName); &lt;br /&gt;
   var getterExpression = Expression.Lambda&amp;lt;Func&amp;lt;object, object&amp;gt;&amp;gt;(body, param); &lt;br /&gt;
   return getterExpression.Compile(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Выводимость типов.''' Тип функции выводится интерпретатором в зависимости от того, от каких аргументов она вызывается.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Реализация ленивых вычислений.''' Функциональные языки делятся на 2 лагеря: те, в которых параметры передаются по значению, и те, в которых имеет место вызов по необходимости (вычисление производится один раз). Ленивые вычисления можно реализовать, сделав специальную обертку для параметров. В Framework 4 есть такая поддержка ленивых вычислений – класс Lazy.&amp;lt;/li&amp;gt;&lt;br /&gt;
 static void F(Lazy&amp;lt;int&amp;gt; a)&lt;br /&gt;
 {&lt;br /&gt;
   Console.WriteLine(a.value);// a вычислится только здесь при вызове&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Классы типов.''' Класс типов представляет собой некоторое множество типов языка, обладающих общими свойствами. Классы позволяют определять, какие типы являются экземплярами каких классов, и предоставлять определения ассоциированных с классом операций, перегруженных для каждого типа. Интуитивно классы типов можно понимать как интерфейсы.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Монады и определение типов data, операция ←.''' В Haskell монады нужны в первую очередь для определения операций ввода-вывода, т.к. они не соответствуют парадигмам функционального программирования (getChar вызывается от одного и того же аргумента, а результат разный). &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
* http://kchri.narod.ru&lt;br /&gt;
* http://ru.wikipedia.org/wiki/Язык_функционального_программирования&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=720</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=720"/>
		<updated>2009-11-12T09:48:54Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является '''лямбда-исчисление'''. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними на мой взгляд проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Для реализации лямбда-исчисления может быть использована библиотека в .NET Framework 4 Beta1 Expression.Lambda. &lt;br /&gt;
 private static Func&amp;lt;object, object&amp;gt; CreateGetter(object entity, string propertyName) &lt;br /&gt;
 { &lt;br /&gt;
   var param = Expression.Parameter(typeof (object), «e»); &lt;br /&gt;
   Expression body = Expression.PropertyOrField(Expression.TypeAs(param, entity.GetType()), propertyName); &lt;br /&gt;
   var getterExpression = Expression.Lambda&amp;lt;Func&amp;lt;object, object&amp;gt;&amp;gt;(body, param); &lt;br /&gt;
   return getterExpression.Compile(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Выводимость типов.''' Тип функции выводится интерпретатором в зависимости от того, от каких аргументов она вызывается.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Реализация ленивых вычислений.''' Функциональные языки делятся на 2 лагеря: те, в которых параметры передаются по значению, и те, в которых имеет место вызов по необходимости (вычисление производится один раз). Ленивые вычисления можно реализовать, сделав специальную обертку для параметров. В Framework 4 есть такая поддержка ленивых вычислений – класс Lazy.&amp;lt;/li&amp;gt;&lt;br /&gt;
 static void F(Lazy&amp;lt;int&amp;gt; a)&lt;br /&gt;
 {&lt;br /&gt;
   Console.WriteLine(a.value);// a вычислится только здесь при вызове&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Классы типов.''' Класс типов представляет собой некоторое множество типов языка, обладающих общими свойствами. Классы позволяют определять, какие типы являются экземплярами каких классов, и предоставлять определения ассоциированных с классом операций, перегруженных для каждого типа. Интуитивно классы типов можно понимать как интерфейсы.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Монады и определение типов data, операция ←.''' В Haskell монады нужны в первую очередь для определения операций ввода-вывода, т.к. они не соответствуют парадигмам функционального программирования (getChar вызывается от одного и того же аргумента, а результат разный). &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==Ссылки==&lt;br /&gt;
* http://kchri.narod.ru&lt;br /&gt;
* http://ru.wikipedia.org/wiki/Язык_функционального_программирования&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=719</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=719"/>
		<updated>2009-11-12T09:41:42Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является '''лямбда-исчисление'''. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними на мой взгляд проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Для реализации лямбда-исчисления может быть использована библиотека в .NET Framework 4 Beta1 Expression.Lambda. &lt;br /&gt;
 private static Func&amp;lt;object, object&amp;gt; CreateGetter(object entity, string propertyName) &lt;br /&gt;
 { &lt;br /&gt;
   var param = Expression.Parameter(typeof (object), «e»); &lt;br /&gt;
   Expression body = Expression.PropertyOrField(Expression.TypeAs(param, entity.GetType()), propertyName); &lt;br /&gt;
   var getterExpression = Expression.Lambda&amp;lt;Func&amp;lt;object, object&amp;gt;&amp;gt;(body, param); &lt;br /&gt;
   return getterExpression.Compile(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Выводимость типов.''' Тип функции выводится интерпретатором в зависимости от того, от каких аргументов она вызывается.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Реализация ленивых вычислений.''' Функциональные языки делятся на 2 лагеря: те, в которых параметры передаются по значению, и те, в которых имеет место вызов по необходимости (вычисление производится один раз). Ленивые вычисления можно реализовать, сделав специальную обертку для параметров. В Framework 4 есть такая поддержка ленивых вычислений – класс Lazy.&amp;lt;/li&amp;gt;&lt;br /&gt;
 static void F(Lazy&amp;lt;int&amp;gt; a)&lt;br /&gt;
 {&lt;br /&gt;
   Console.WriteLine(a.value);// a вычислится только здесь при вызове&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Классы типов.''' Класс типов представляет собой некоторое множество типов языка, обладающих общими свойствами. Классы позволяют определять, какие типы являются экземплярами каких классов, и предоставлять определения ассоциированных с классом операций, перегруженных для каждого типа. Интуитивно классы типов можно понимать как интерфейсы.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Монады и определение типов data, операция ←.''' В Haskell монады нужны в первую очередь для определения операций ввода-вывода, т.к. они не соответствуют парадигмам функционального программирования (getChar вызывается от одного и того же аргумента, а результат разный). &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=718</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=718"/>
		<updated>2009-11-12T09:41:07Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является лямбда-исчисление. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними на мой взгляд проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Для реализации лямбда-исчисления может быть использована библиотека в .NET Framework 4 Beta1 Expression.Lambda. &lt;br /&gt;
 private static Func&amp;lt;object, object&amp;gt; CreateGetter(object entity, string propertyName) &lt;br /&gt;
 { &lt;br /&gt;
   var param = Expression.Parameter(typeof (object), «e»); &lt;br /&gt;
   Expression body = Expression.PropertyOrField(Expression.TypeAs(param, entity.GetType()), propertyName); &lt;br /&gt;
   var getterExpression = Expression.Lambda&amp;lt;Func&amp;lt;object, object&amp;gt;&amp;gt;(body, param); &lt;br /&gt;
   return getterExpression.Compile(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Выводимость типов.''' Тип функции выводится интерпретатором в зависимости от того, от каких аргументов она вызывается.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Реализация ленивых вычислений.''' Функциональные языки делятся на 2 лагеря: те, в которых параметры передаются по значению, и те, в которых имеет место вызов по необходимости (вычисление производится один раз). Ленивые вычисления можно реализовать, сделав специальную обертку для параметров. В Framework 4 есть такая поддержка ленивых вычислений – класс Lazy.&amp;lt;/li&amp;gt;&lt;br /&gt;
 static void F(Lazy&amp;lt;int&amp;gt; a)&lt;br /&gt;
 {&lt;br /&gt;
   Console.WriteLine(a.value);// a вычислится только здесь при вызове&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Классы типов.''' Класс типов представляет собой некоторое множество типов языка, обладающих общими свойствами. Классы позволяют определять, какие типы являются экземплярами каких классов, и предоставлять определения ассоциированных с классом операций, перегруженных для каждого типа. Интуитивно классы типов можно понимать как интерфейсы.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Монады и определение типов data, операция ←.''' В Haskell монады нужны в первую очередь для определения операций ввода-вывода, т.к. они не соответствуют парадигмам функционального программирования (getChar вызывается от одного и того же аргумента, а результат разный). &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=717</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=717"/>
		<updated>2009-11-12T09:40:03Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является лямбда-исчисление. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними на мой взгляд проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
Для реализации лямбда-исчисления может быть использована библиотека в .NET Framework 4 Beta1 Expression.Lambda. &lt;br /&gt;
 private static Func&amp;lt;object, object&amp;gt; CreateGetter(object entity, string propertyName) &lt;br /&gt;
 { &lt;br /&gt;
   var param = Expression.Parameter(typeof (object), «e»); &lt;br /&gt;
   Expression body = Expression.PropertyOrField(Expression.TypeAs(param, entity.GetType()), propertyName); &lt;br /&gt;
   var getterExpression = Expression.Lambda&amp;lt;Func&amp;lt;object, object&amp;gt;&amp;gt;(body, param); &lt;br /&gt;
   return getterExpression.Compile(); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Выводимость типов.''' Тип функции выводится интерпретатором в зависимости от того, от каких аргументов она вызывается.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Реализация ленивых вычислений.''' Функциональные языки делятся на 2 лагеря: те, в которых параметры передаются по значению, и те, в которых имеет место вызов по необходимости (вычисление производится один раз). Ленивые вычисления можно реализовать, сделав специальную обертку для параметров. В Framework 4 есть такая поддержка ленивых вычислений – класс Lazy.&lt;br /&gt;
 static void F(Lazy&amp;lt;int&amp;gt; a)&lt;br /&gt;
 {&lt;br /&gt;
   Console.WriteLine(a.value);// a вычислится только здесь при       вызове&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Классы типов.''' Класс типов представляет собой некоторое множество типов языка, обладающих общими свойствами. Классы позволяют определять, какие типы являются экземплярами каких классов, и предоставлять определения ассоциированных с классом операций, перегруженных для каждого типа. Интуитивно классы типов можно понимать как интерфейсы.&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
'''Монады и определение типов data, операция ←.''' В Haskell монады нужны в первую очередь для определения операций ввода-вывода, т.к. они не соответствуют парадигмам функционального программирования (getChar вызывается от одного и того же аргумента, а результат разный). &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=716</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=716"/>
		<updated>2009-11-12T09:33:56Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Обзор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является лямбда-исчисление. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа.&amp;lt;br&amp;gt; &lt;br /&gt;
Натуральные числа и булевские выражения и операции с ними на мой взгляд проще определить, используя их определение в PascalABC.  Прямую рекурсию также легче реализовать естественным путем. Для других конструкций целесообразно использовать лямбда-функции:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; безымянные функции&lt;br /&gt;
&amp;lt;li&amp;gt; именованные выражения &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; let x=s in T ↔ (λx.T) s &lt;br /&gt;
&amp;lt;li TYPE=a&amp;gt; T where x=s ↔ (λx.T) s&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; определение правой части функции через лямбда-выражение, т.е. реализовать if, case и сравнение с образцом → благодаря этому будет возможно описание функции, используя if и case, внутри выражения&lt;br /&gt;
&amp;lt;li&amp;gt; реализация функций высшего порядка и каррирования.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=715</id>
		<title>Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D1%85_%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B2_%D1%81%D1%80%D0%B5%D0%B4%D0%B5_PascalABC.NET&amp;diff=715"/>
		<updated>2009-11-12T09:29:37Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: Новая: ==Реализовано с помощью узлов синтаксического дерева PascalABC :== * Подключение внешних сборок (import) * Типы ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Реализовано с помощью узлов синтаксического дерева PascalABC :==&lt;br /&gt;
* Подключение внешних сборок (import)&lt;br /&gt;
* Типы данных : булевский, вещественный, целый, символьный и строки&lt;br /&gt;
* Простые операции с ними&lt;br /&gt;
* Описание функций и главная функция main&lt;br /&gt;
* Сопоставление с образцом&lt;br /&gt;
* if, case, охранные выражения&lt;br /&gt;
* Операторы do, print, return&lt;br /&gt;
* Локальные переменные (where)&lt;br /&gt;
* Списки (перечислимые, прогрессии, бесконечные)&lt;br /&gt;
* Оператор ‘:’&lt;br /&gt;
* Частично обработка ошибок&lt;br /&gt;
* Комментарии  --, &amp;lt;--, --&amp;gt;&lt;br /&gt;
==Обзор==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li TYPE=I&amp;gt;&lt;br /&gt;
Математическим фундаментом функционального программирования является лямбда-исчисление. Такие языки как Haskell и Clean имеют 100% соответствие своей семантики с семантикой подразумеваемых конструкций лямбда-исчисления. Используя лямбда-абстракции можно определить булевские значения и условия, пары и кортежи и даже натуральные числа. &lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
	<entry>
		<id>https://pascalabc.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=714</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://pascalabc.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=714"/>
		<updated>2009-11-12T09:23:31Z</updated>

		<summary type="html">&lt;p&gt;213.138.92.85: /* Web-среда разработки PascalABC.NET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Некоторые статьи о PascalABC.NET ==&lt;br /&gt;
* [[FAQ по PascalABC.NET]]&lt;br /&gt;
* [[Шаблоны кода]]&lt;br /&gt;
&lt;br /&gt;
== Web-среда разработки PascalABC.NET ==&lt;br /&gt;
&lt;br /&gt;
[[Основная страница проекта WDE PascalABC.NET|Основная страница проекта]]&lt;br /&gt;
&lt;br /&gt;
==Реализация основных возможностей функционального языка программирования в среде PascalABC.NET==&lt;br /&gt;
&lt;br /&gt;
[[Обзор реализации основных возможностей функционального языка программирования в среде PascalABC.NET|Обзор]]&lt;br /&gt;
&lt;br /&gt;
== Статьи о внутреннем представлении PascalABC.NET ==&lt;br /&gt;
&lt;br /&gt;
* [[Архитектура PascalABC.NET]]&lt;br /&gt;
* [[Интерфейс подключения нового языка программирования]]&lt;br /&gt;
* [[Директивы компилятора]]&lt;br /&gt;
* [[Синтаксическое дерево]]&lt;br /&gt;
* [[Семантическое дерево]]&lt;br /&gt;
* [[Формат PCU]]&lt;br /&gt;
* [[Отладчик]]&lt;br /&gt;
* [[Intellisense]]&lt;br /&gt;
&lt;br /&gt;
* [[OpenMP]]&lt;br /&gt;
&lt;br /&gt;
== Статьи по программированию в PascalABC.NET ==&lt;br /&gt;
* [[Локализация приложений]]&lt;br /&gt;
* [[Плагины для PascalABC.NET]]&lt;br /&gt;
* [[OpenGL]]&lt;br /&gt;
&lt;br /&gt;
== Другие статьи ==&lt;br /&gt;
* [[Использование базы данных MS SQL - ликбез]]&lt;br /&gt;
* [[Аспектно-ориентированное программирование]]&lt;br /&gt;
* [[Рефакторинг]]&lt;br /&gt;
* [[Алгоритмы для начинающих на примерах]]&lt;/div&gt;</summary>
		<author><name>213.138.92.85</name></author>
	</entry>
</feed>