Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
ВнизТрадиции программирования2: или ... Найти похожие ветки
← →
Petr V. Abramov © (2007-09-10 23:27) [40]глобальные переменные - удобно, пока приложение однопотоковое.
← →
Anatoly Podgoretsky © (2007-09-11 00:06) [41]> Petr V. Abramov (10.09.2007 23:27:40) [40]
Не только однопотоковое, а линейное.
← →
Petr V. Abramov © (2007-09-11 00:09) [42]> Anatoly Podgoretsky © (11.09.07 00:06) [41]
формализатор фигов :)
← →
Anatoly Podgoretsky © (2007-09-11 00:10) [43]> Petr V. Abramov (11.09.2007 00:09:42) [42]
Мы все умрем.
← →
Petr V. Abramov © (2007-09-11 00:17) [44]> Anatoly Podgoretsky © (11.09.07 00:10) [43]
они не дождутся
← →
Юрий Зотов © (2007-09-11 01:05) [45]Господа, за последнее время понавыдумывали столько терминов для обозначения все тех же велосипедов, что все они уже стали пофиг.
Я просто Ешу программы так, чтобы они надежно работали. Чтобы был понятен их код. И не только мне одному. И пофиг, как оно называется.
Ежели потребуется ввести глобальную переменную - то введу, запросто. Но так, чтобы это было безопасно и удобно (в том числе, и через 5 лет).
Ежели потребуется написать goto - то напЕшу. Но так, чтобы оно код не запутывало.
В общем, так: "ежели... то... но..."
Вот и вся схема. И пофиг.
Ну не стоит ради 2х2 изобретать теории. Иногда надо быть проще, ей-богу.
← →
Плохиш © (2007-09-11 01:10) [46]
> Я просто Ешу программы
Хм, какие у вас продвинутые ежи, программы требуют 8-O
← →
vasIZmax © (2007-09-11 22:26) [47]
> MsGuns © (10.09.07 19:54) [39]
Честно не знаю, работать с этим не приходилось - поэтому не знаю.
Решил выяснить ответ.
Создаем новое приложение. Дописываем кодvar
Form1, ttt:Tform1;
Т.е. создаем экземляр. (Правильно?)
На форму кидаем кнопку. И пишуApplication.CreateForm(TForm1, ttt);
ttt.Show;
По нажатию на кнопку создается точно такая же форма.
Заинтересовало, а как это можно использовать? Такое вот создание, ведь все свойства form1 копируются в ttt, т.е. по просту говоря ttt копия form(Правильно?)
← →
Суслик © (2007-09-12 00:13) [48]2автор
а при чем здесь функциональное программирование и примеры на дельфи?
вот на common lisp"е - это да, или на форте (все, других функциональных языков не знаю).
http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%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
← →
Суслик © (2007-09-12 00:27) [49]Вот еще ссылочка полезная
http://ru.wikibooks.org/wiki/%D0%A1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D1%8B_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_Haskell
hint
Delphi, java, c и пр. традиционно считаются императивными (так вроде пишется) языками.
← →
Галинка © (2007-09-12 10:56) [50]Суслик, так вот Игорь меня уже поправил, что надо говорить "процедурное программирование", а не функциональное. А примеры на дельфи вооьще не мои. Я вообще на Си пишу )) Сейчас во всяком случае. ))) Причем даже не на объект-ориентированном ))
← →
Суслик © (2007-09-12 11:02) [51]
> [50] Галинка © (12.09.07 10:56)
Да, виноват. Не прочел.
← →
clickmaker © (2007-09-12 11:04) [52]
> А примеры на дельфи вооьще не мои
ты просто разместила объяву? :)
← →
Anatoly Podgoretsky © (2007-09-12 11:38) [53]
> ты просто разместила объяву? :)
А мотороллер у нее есть?
← →
_ShaggyDoc (2007-09-12 13:13) [54]Вот я в оcновном на Visual LISP пишу. Уж куда функциональней - вообще нет "процедур" и даже "операторов". Только списки, функции (как частный вид списков) и "атомы". Но переменные есть.
Переменные могут быть локальными (если указать в объявлении функции) и глобальными. Без переменных (даже локальных), в отличие от "императивных" языков можно вообще обойтись. Можно, но с текстом программы разбираться будет очень неудобно. Но среди значительной части "лисперов" считается особым шиком избавиться вообще от имен локальных переменных.
Глобальные переменные всегда считаются полохим тоном. Но одно дело, если переменная стала глобальной из-за того, что автор просто ее забыл объявить локальной, а другое дело, если она введена сознательно. В этом случае все глобальные могут быть "объектами строгого учета", и выделяться визуально. Ничего страшного в этом не вижу.
Согласен с Юрий Зотов © (11.09.07 01:05) [45] . Делать надо все с умом.
Зачастую споры о допустимости глобальных, или о традициях именования являются начетничеством. Преподаватели этим страдают, но для преподавателей это, возможно, и правильно. "Служба-с, такая-с".
Исходный вопрос был про функциональное программирование. Функция всегда должна возвращать какое-то значение, даже если оно не используется. Может ли функция в виде побочного эффекта изменять какое-то глобальное значение - дело вкуса. Я лично стараюсь, чтобы даже глобальные переменные изменялись явно. Например, функция читает какие-то настройки из файла или из реестра и возвращает список значений. Вот этот спиок я могу присвоить значению глобальной переменной - чтобы в следующий раз в реестр не лазить.
Но присваивание значения в функциональном языке - это тоже функция :)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.038 c