LINUX.ORG.RU

Free Pascal 2.0


0

0

15 мая 2005 года, после 5 лет разработки вышел Free Pascal 2.0.

Поддерживаются следующие процессоры (AMD-64, SPARC, PPC (32/64 бит), ARM) и платформы (Mac OS classic, Mac OS X, MorphOS, and Novell Netware). Среди улучшений: большая совместимость с Delphi, поддержка widestrings, обновление компонент для доступа к базам данных, добавление документации и консольного IDE.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от nsav

> 2 nsav (*) (20.05.2005 22:58:12)

> что функция -- это "тетя дуся", которой мы что-то кидаем в рот, она это пережевывает и выплевывает результат. При этом, тетя работает стабильно, то есть если мы ей 100 раз одно и то же кинем, то она 100 раз одно и то же выплюнет

Я, конечно, не знаю, как у молодёжи (современной) обстоит дело с абстрактным мышлением, но, на мой взгляд, это хороший промер, как воспринять абстрактное понятие через конкретный образ...

Молодец Ваш учитель. Нет, даже УЧИТЕЛЬ. (IMHO)

R_Valery ★★★
()
Ответ на: комментарий от R_Valery

промер == пример

Прошу простить за орфографию и синтаксис... :-(

R_Valery ★★★
()
Ответ на: комментарий от Eldhenn

> Ну не знаю кому что очевидно. Мне очевидно, что машина (механизм) нагляднее математической абстракции.

Выше был приведен пример как на рабоче-крестьянском уровне объяснить понятие функции. При чем тут абстракция? Все очень конкретно. Надо просто сказать, что лямбда по сути своей -- это способ описания того, как тетя выглядит. Можно привести сравнение с письменной речью -- буквы по сути тоже абстракция. В общем, если на дано, то даже 2+2=4 не объяснишь. Не фиг лезть в область, в которой ты дилетант.

nsav
()
Ответ на: комментарий от nsav

Для того уровня, который легко поймет что тм это нечто вроде магнитофона.

А потом сравним какое описание будет бредовее.

ukez
()
Ответ на: комментарий от nsav

подумай. а еще подумай над тем почему куча народу, составляющих программы для школ и вузов на протяжении лет 40 предпочитали лямбде МТ ? Математически то они эквиваленты. Миллионы лемингов не могут ошибаться ? не думаю...

ukez
()
Ответ на: комментарий от ukez

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

nsav
()
Ответ на: комментарий от ukez

Да, ты тогда намути полное объснение МТ, чтоб было с чем сравнивать.

nsav
()
Ответ на: комментарий от nsav

\documentclass{article}
\usepackage[utf-8]{inputenc}
\usepackage[russian]{babel}
\begin{document}

Идеи принадлежат учителю математики лицея №171 ``Лидер'' в
г. Киеве Якиру Михаилу Семеновичу.

\section{Функция (интуитивное понятие)}

Функция -- одно из фундаментальных математических понятий. Рассмотрим
на бытовом уровне определение. 

Функцию можно представить как ``тетю Дусю''. У тети простая работа --
она пережевывает определенные предметы (фрукты, овощи, стулья, числа,
геометрические фигуры), и выплевывает результат. По трудовому
контракту тетя должна работать стабильно, то есть сколько бы мы ей не
кидали один и тот же предмет, результат будет один.

{\it Рисуем на доске тетю Дусю и показываем примеры}

\section{Способы задания функции}

Итак, мы разобрались в том, что есть функция. Поставим задачу -- надо
изобрести универсальные способы описания тети Дуси. До нас уже были
изобретены несколько.

\begin{enumerate}
\item Перечисление.\\
Пусть у нас тетя Дуся может кушать малое количество предметов. Тогда,
можно просто перечислить, что тетя выплюнет в том или ином случае

{\it показываем примеры}

\item Алгебраическое задание.\\

{\it Лирическое отступление про абстракции. Рассказ про слова --
  абстрактные описания реальных предметов}

Рассмотрим тетю, которая кушает числа. В этом случае мы не можем
воспользоваться первым способом. Поэтому рассмотрим второй. 

Пусть тетя работает по какому-то закону. Например, берет число,
прибавляет к нему пятерку и возвращает результат. Тогда удобно
записать в следующем виде:

$$f(x)=x+5$$

Рассмотрим подробно эту запись. Буква f -- это математическое имя тети
Дуси. В скобках указаны, так называемые, аргументы функции. 

Рассмотрим, как происходит обращение к такой тете Дусе.

$$f(6)=11$$
$$f(2005)=2010$$

{\it здесь показываем пальцами что и как подставляется. Рассматриваем
  функции нескольких аргументов}


\section{лямбда исчисление}

{\it Заверение, что несмотря на страшное название -- все очень
  просто. Напоминание про абстракцию}

В алгебраическом способе есть один недостаток, функцию нельзя
использовать как число. ({\it пояснение на примере}). Поэтому,
придумали еще один способ задания функции -- через лямбду.

$$\lambda x:x+1$$

{\it Дальше на примерах. Поясняем что такое альфа и бета
  редукция. (тоже на примерах)}

\end{enumerate}

\end{document}

nsav
()
Ответ на: комментарий от nsav

Имхо этого достаточно, для того чтоб применять лямбду в лиспе.

nsav
()
Ответ на: комментарий от ukez

> подумай. а еще подумай над тем почему куча народу, составляющих программы для школ и вузов на протяжении лет 40 предпочитали лямбде МТ ? Математически то они эквиваленты. Миллионы лемингов не могут ошибаться ? не думаю...

Школьникам не нужны ни лямбды, ни МТ. Не все ученики даже физматклассов станут программерами.

nsav
()
Ответ на: комментарий от nsav

>> Дальше на примерах. Поясняем что такое альфа и бета редукция. (тоже на примерах)}

Самого главного ты не объяснил. Мы же про лямбду собирались слушать, а ты по большому счету рассказал только про функцию и то напримере каких-то полуобколбашенных теть дусь которые почему-то "пережевывают и выплевывают" что-то.

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

Объяснить концепцию МТ на пальцах проще, там не возникает потребности к привлечению каких-то нереальных теть дусь которые что-то жуют, потом выплевывают. Просто описываешь некое устройство, рассказываешь как оно работает. Любой двоечник который по ночам рубится в квейк поймет принцип такой машины.

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

Не вижу смысла применять лямбду, требующую относительно выского уровня мат. подоготвки, в ущерб простой МТ.

На примере МТ можно пояснить и внутренее устройство компьютера. А лямбда в этом отношении сливает.

ukez
()
Ответ на: комментарий от ukez

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

Зато с лямбдой можно писать реальные программы. И нафик МТ не нужна. Вообще для этого не нужно сверхусилий. А изучая МТ, поневоле напрашивается вопрос -- нафиг это надо, если игру не напишешь? Для двоешников как раз МТ не интересна, потому что непрактично.

nsav
()
Ответ на: комментарий от nsav

> Я объяснил, что такое лямбда.

Где ты объяснил ? Ты просто написал что есть такая штука... Типа одна из форм записи "тети дуси". Конкретных принципов построения лямбда исчисления в доступной школьнику форме я не нашел.

> Потом, не понимая что такое функция, никто программить не сможет, пусть он и знает что такое МТ.

Идея была не научить школьников программить на языке Х, а научить их алгоритмическому способу мышления.

> Зато с лямбдой можно писать реальные программы. И нафик МТ не нужна.

С лямбдой нельзя писать реальные программы. Это математическая абстракиция. И оценивается она именно с этих позциций, как удобный интсрумент обучения алгоритмическому мышлению. Если хочешь писать программы, купи "Си для идиотов".

> А изучая МТ, поневоле напрашивается вопрос -- нафиг это надо, если игру не напишешь? Для двоешников как раз МТ не интересна, потому что непрактично.

Типа: а нафик нужна школьная физика, если реактора не построишь; литература если книги не напишешь ?; химия если бомбы не сделаешь ?

Продолжить ?

Кстати первые программы для БК-0010-01 мы писали будучи в 5 или 6 классе. тогда о функции я не имел никакого представления и отлично себя чувствовал. В том языке вообще четко выраженного понятия "функция" не существовало.

ukez
()
Ответ на: комментарий от ukez

Комбинаторы так можно объяснить: одна тётя Дуся жуёт то, что выдала другая тётя Дуся. И их вместе засовываем в одну матрёшку тётю Дусю.

anonymous
()
Ответ на: комментарий от anonymous

На такие уроки лучше ходить с пакетиками. Мало ли кого стошнит.

Кстати вполне естетсвенней, что тетя дуся не выплевывает, а ... как бы выразится... "выгаживает" результат, логика "обработки" прослеживается лучше.

Ну а в SK одна тетя дуся применяется к другой тете дусе и в результате может получится такая бодяга что все тети дуси поменялись местами между собою, размножились и превратились в дяду петю.

ukez
()
Ответ на: комментарий от ukez

> см. ukez (*) (19.05.2005 16:39:21) в этом треде

Моя мама не поняла что с этим дальше делать. Низачот.

А если серьезно, лямбда -- это всего лишь способ записи функций. Ничего тут особенного нет. Надо объяснять функциональный подход к алгоритмизации. Он более понятен чем императивный. С функционального на императивный перейти легко, а наоборот -- очень тяжело, многие плюются и достают обратно свое делфи.

Еще я не понял, какое отношение имеет МТ по отношению к паскалю.

nsav
()
Ответ на: комментарий от nsav

> Моя мама не поняла что с этим дальше делать.

Не удивительно. Там и не написано что дальше с этим делать. Посмотри чуть выше и ниже по форуму.

Про понятность функционального подхода - твое субъективное воспринятие концепций. Я уже где-то писал, что описания многих алгоритмов из бытовой действительности лучше ложаться на императивный подход. Циклы лучше описывают бытовые последовательнсти действий. Рекурсии в быту меньше. Соответственно непоготовленному человеку она менее понятна (имхо конечно же).

А по большому счету отличие функционального подхода от имепративного состоит именно в организации циклических действий. В функц. - рекурсия, в императив. - циклы, рекурсия, условный переход. Отсюда кстати и вытекает понятие контекста исполнения.

> С функционального на императивный перейти легко, а наоборот -- очень тяжело, многие плюются и достают обратно свое делфи.

Не гони. Ты еще расскажи про то как трудно c объектного подхода на структурный переходить и наобарот. Если человек не хочет извилинами шевелить то исключительно его субъективные проблемы.

ukez
()
Ответ на: комментарий от ukez

> Не удивительно. Там и не написано что дальше с этим делать. Посмотри чуть выше и ниже по форуму.

Блин, нормальное описание МТ или машины поста занимает около 50 страниц (с примерами и формализациями). Так что не гони, сантехнику это не понять.

> Циклы лучше описывают бытовые последовательнсти действий.

Да нет в быту ничего похожего на цикл со счетчиком.

Слушай, может хватит слесарей 6-го класса учить математике? Я лично уже задолбался. Ученики матклассов прекрасно понимают и рекурсию, и циклы, на примере каких бы теть бы им это не объясняли.

> Если человек не хочет извилинами шевелить то исключительно его субъективные проблемы.

Вот здесь я с тобой очень согласен. Но с другой стороны надо стимулировать это желание. В советское время желание стимулировалось "кнутом" (в прямом смысле), теперь так не получается. В общем возник еще один вопрос. Но это уже другая тема.

nsav
()
Ответ на: комментарий от nsav

> Блин, нормальное описание МТ или машины поста занимает около 50 страниц (с примерами и формализациями). Так что не гони, сантехнику это не понять.

Так ламбда занимает не меньше. (См. например, "Барендрегт. Ламбда-исчисление. Его синтаксис и семантика". Есть эл. версия.)

Формализации на этом этапе не нужны. Важна суть. Суть такова, что МТ легко объяснить на пальцах. На ее основе можно построить кучу логических задачек, развиваюших алгоритмическое мышление у детишек.

> Да нет в быту ничего похожего на цикл со счетчиком.

общий случай цикла со счетчиком цикл в котором явно задана последовательность смен состояний контекста исполнения.

a1->a2->a3->a4

Бытовой пример: сделать что-то для каждого объекта из такого-то множества (for each). Сначала выполняешь для одного объекта, потом для следующего и т.д. Счетчик - более конкретное мат. понятие.

ukez
()
Ответ на: комментарий от ukez

> Формализации на этом этапе не нужны. Важна суть. Суть такова, что МТ легко объяснить на пальцах. На ее основе можно построить кучу логических задачек, развиваюших алгоритмическое мышление у детишек.

Есть куча других задач, которые развивают логику получше МТ. Чего у тебя на этой машине свет клином сошелся?

> общий случай цикла со счетчиком цикл в котором явно задана последовательность смен состояний контекста исполнения.

Я знаю. Рекурсия также легко поясняется на примерах.

nsav
()
Ответ на: комментарий от nsav

Ага, посмотрю я, как он простейший цикл на МТ будет объяснять...

anonymous
()
Ответ на: комментарий от nsav

>Есть куча других задач, которые развивают логику получше МТ. Чего у тебя на этой машине свет клином сошелся?

Мы не о логике, а о алгоритмическом мышлении. Примеры, если можно, таких задач (кроме лямбды, само собой). Кстати, неужели понятие рекурсии детьми воспринимается естественно? Помнится, с реккурентными формулами в школе у наших были некоторые проблемы (а это физмат, что такое обычные школьники по сравнению с физматом я тоже видел - грустное зрелище)

Eldhenn
()
Ответ на: комментарий от Eldhenn

> Мы не о логике, а о алгоритмическом мышлении. Примеры, если можно, таких задач (кроме лямбды, само собой).

Всякие задачки типа "найти выигрышную стратегию игры", задачи на конструкцию, подмножество комбинаторно-логических задач. За примерами иди на соответсвующие сайты.

Есть еще всякие приблуды типа лого, прочие обучалки.

Я не говорю, что МТ не нужна. Но сводить обучение программированию к программированию МТ глупо.

> Кстати, неужели понятие рекурсии детьми воспринимается естественно? Помнится, с реккурентными формулами в школе у наших были некоторые проблемы (а это физмат, что такое обычные школьники по сравнению с физматом я тоже видел - грустное зрелище)

Где вы такой физмат набрали? Они хоть матиндукцию понимают?

nsav
()
Ответ на: комментарий от nsav

так никто и не рискнул решить факториал или привести задание на МТ ;-) даже Eldhenn, апалогет обучения на МТ не захотел прикинуть объем программы факториала ! Позор, господа.. Нда..нижний предел программы факториала на МТ можно оценить как N^2+2 состояний, где N - максимально допустимое начальное число. Пояснение1 : N^2 - таблица умножения от 1 до N ;-) еще добавляется состояние выписывающее ряд от 1 до N и конечное состояние.. Пояснение2 : можно оптимизировать таблицу оставив только нужные пары чисел (1*2,2*3,6*4,24*5..) но эта оптимизация основанны на факториалах и по условию запрещенна.

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

anonymous
()
Ответ на: комментарий от anonymous

sorry - писал уставшим ;-) конечно-же не N^2+2 а N+2 - ночью путал кол-во состояний и кол-во записей.. уже выключив комп. думаю - как это я умудрился получить факториал O^2 ;-)

anonymous
()
Ответ на: комментарий от anonymous

увидел тут в Интернете книжку описание : "Учебный курс "Введение в теорию программирования" основан на творческом синтезе избранных формальных теорий (ламбда-исчисление, комбинаторная логика, теория категорий и др.) и уникальной технологической платформы Microsoft.NET"..а вы говорите Паскаль,МТ.. C# и винформс - вот кто рулит :-)

anonymous
()
Ответ на: комментарий от ukez

Куда же подевался наш апологет паскаля и конечных автоматов укез? Неужто придется такому человеку слив засчитать?

nsav
()
Ответ на: комментарий от nsav

>сводить обучение программированию к программированию МТ глупо.

Не программированию! Алгоритмическому мышлению!

>Где вы такой физмат набрали? Они хоть матиндукцию понимают?

Я не говорил, что никто не понимал реккурентные формулы. Я говорил, что с ними были некоторые проблемы. В основном поначалу.

Насчёт комбинаторных задач - не могу согласиться, хотя тут возможна предвзятость. У меня совершенно нет комбинаторных способностей - более-менее сложная задача ставит меня в тупик. При этом НАМ, МТ и РМ для меня были (и остаются) понятными и естественными.

Факториал. Во-первых, факториал я взял для примера, как одну из классических задач при изучении любого ЯП, не оценивая сложность её решения на МТ. Далее, помнится мне, когда я писал МТ на НАМ, там тоже требовался алфавит из N символов. Это нисколько не уменьшает ценность решения, даже если это решение является лишь общим, то есть шаблоном конкретного решения.

Eldhenn
()
Ответ на: комментарий от Eldhenn

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

anonymous
()
Ответ на: комментарий от Eldhenn

> Насчёт комбинаторных задач - не могу согласиться, хотя тут возможна предвзятость. У меня совершенно нет комбинаторных способностей - более-менее сложная задача ставит меня в тупик.

Не обижайся конечно, но просто лол. То есть, если ты не понимаешь СТО, то ее нафиг учить не надо. Ведь физическое мышление можно и на ньютоновской динамике развивать. Ржунимагу.

nsav
()
Ответ на: комментарий от anonymous

обучение на МТ - зло, не меньшее чем обучение на лямбде ;-) и то и другое надо знать (имеется в виду высшее образование), но учить этому надо людей уже понимающих что есть алгоритм, как работает ЭВМ и имеющих математический базис не на школьном уровне.

anonymous
()
Ответ на: комментарий от Eldhenn

цитата 1 : >И только когда ребёнок научится писать факториал на МТ, когда он сможет написать его с закрытыми глазами - тогда можно начинать учить процедурному програмированию. Уже всё равно на чём - хоть на QBasic. Понимать алгоритмы он уже умеет.

цитата 2 : > Факториал. Во-первых, факториал я взял для примера, как одну из классических задач при изучении любого ЯП, не оценивая сложность её решения на МТ. Далее, помнится мне, когда я писал МТ на НАМ, там тоже требовался алфавит из N символов. Это нисколько не уменьшает ценность решения, даже если это решение является лишь общим, то есть шаблоном конкретного решения.

Нехорошо как-то,Eldhenn, требовать от людей более чем от себя..Приводя любой пример задачи автор должен знать решение - это профессионально.

anonymous
()

Значит "меня в школе хорошо лямбде научили, а МТ плохо" - это правильная позиция. А все остальные, значит, неправильные. ЛОР, одно слово.

Eldhenn
()
Ответ на: комментарий от Eldhenn

> Значит "меня в школе хорошо лямбде научили, а МТ плохо" - это правильная позиция.

Кто такое сказал? Цитату пожалуйста, не занимайся пустозвонством.

nsav
()
Ответ на: комментарий от Eldhenn

Гражданин, вас не учили логике в детстве? Объективно анализировать аргументы оппонента вы не в состоянии? Так это, знаете ли, признаки ГСМ.

anonymous
()
Ответ на: комментарий от Eldhenn

Да забей, Сеня.. Не надо так обижаться. Тут каждый более-менее активный участник сливал хоть по разу. Просто в следующий раз надо быть поосторожнее с заявлениями, что каждый школьник должен не глядя на МТ факториал писать, а ведь ты сам сказал, что не очень хочешь этим заниматься :)

anonymous
()
Ответ на: комментарий от anonymous

>Да где это паскакаль - норма? Разве что в бывшем совке. Так давно пора от этих бредней избавляться...
anonymous (*) (16.05.2005 16:14:25)

Обучение алгоритмам и основам программирования проводится
практически везде на паскале.
У меня есть толстенная книга, алгоритмы, по лекциям Масачутеского Технологического Института. Все там на паскале, все ясно и понятно.
Книга Вирта "Алгоритмы и Данные" - тоже на паскале(модуле).

Сын легко воспринимает Object Pascal, включая объектную парадигму.
Гораздо проще воспринимается, чем СтраусТруповский С++, с его
нечитабельными потоками ввода в первой(!!!) же главе:

#include
main()
{
int inch = 0;
cout << "inches";
cin >> inch;
cout << inch;
cout << " in = ";
cout << inch*2.54;
cout << " cm\n";
}




Lem_I
()
Ответ на: комментарий от Lem_I

тут пока что еще никто не говорил, что надо обучать на плюсах.

nsav
()

Ребят, я вас не понимаю. А как же do loop? Почти точная копия for из сей.

anonymous
()

немного не по теме, но раз уж тут столько функиональщиков :-)
если у кого есть книга "Research Directions in Parallel Functional Programming" (http://www-fp.dcs.st-and.ac.uk/pfpbook/index.html)
киньте на max_kma (at) mail (dot) ru
а то блин засада - на амазоне 140$ и доставка в Москву от 3-х месяцев и до беспредела..особенно ужасают сроки

Максим Кузнецов

anonymous
()
Ответ на: комментарий от nsav

>Ты когда-нибудь пробовал писать какую-нибудь сложную программу со
>сложными динамическими структурами данных в паскале?
Не уверен, что детишки в школе будут писать "сложную программу со
сложными динамическими структурами"

>(setq x ((a . b) c d (e (f d c))))
А вот такое я бы детям запретил показывать вообще.

>Сколько стрчек выйдет?
Слава богу, что не одна - детям понятнее будет.
А как ты переведешь на свой любимый язык такую строку (форт):
>R DO I 2 + @ I @ < IF I 2 +
?
Краткость - не всегда сестра таланта.

Andy.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.