Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
8-1167754032
artos221
2007-01-02 19:07
2007.10.14
Язык Морзе


15-1189689035
novill
2007-09-13 17:10
2007.10.14
Кто знает как из DCU вытянуть исходники?


2-1189972791
Alexey_K
2007-09-16 23:59
2007.10.14
Окно, подобие понели задач


9-1161037863
wrl
2006-10-17 02:31
2007.10.14
Подскажите ссылочку на описание формата VRML *.wrl ?


2-1190398346
vadimi4
2007-09-21 22:12
2007.10.14
ADO и SQL Server 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский