Re[5]: Тебе мозги насиловать необязательно.
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.08.04 19:42
Оценка:
Здравствуйте, bkat, Вы писали:

B>А что такое по-твоему, к примеру,

B>полиморфизм и почему это не может быть в функциональных языках?

Что-то не пойму. Полиморфизм, что только в них есть? Или он в ООП привнесен из ФЯ?

Ну, есть он и там, и там. Что плохого то?
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Тебе мозги насиловать необязательно.
От: bkat  
Дата: 21.08.04 19:55
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, bkat, Вы писали:


AD>>>С каких это пор инкапсуляция и полиморфизм стали элементами ФП?

B>>А что такое по-твоему, к примеру,
B>>полиморфизм и почему это не может быть в функциональных языках?

AD>Да, беру свои слова насчёт полиморфизма обратно. Сделал поиск и, с удивлением для себя обнаружил, что в полиморфизм является одним из принципов ФП.


А с инкапсуляцией в чем проблема?
Тоже в общем, если приглядеться, она там есть.

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

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

Кстати, Gaperton упоминал, что программы на функциональных языках
можно чаще доказывать формальными методами на корректность.
Уже только этого достаточно, чтобы обратить внимание на функциональные языки.
Особенно там, где надежность программ — это основное требование.
Re[6]: Тебе мозги насиловать необязательно.
От: bkat  
Дата: 21.08.04 20:03
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, bkat, Вы писали:


B>>А что такое по-твоему, к примеру,

B>>полиморфизм и почему это не может быть в функциональных языках?

VD>Что-то не пойму. Полиморфизм, что только в них есть? Или он в ООП привнесен из ФЯ?


VD>Ну, есть он и там, и там. Что плохого то?


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

С каких это пор инкапсуляция и полиморфизм стали элементами ФП?

На него и отвечаю
Re[4]: Тебе мозги насиловать необязательно.
От: ArtDenis Россия  
Дата: 22.08.04 05:51
Оценка:
Здравствуйте, VladD2, Вы писали:

INT>>Попробуй все-таки написать на ФЯ хоть что-нибудь. Возможно, ощущение сходства с ассемблером исчезнет.

VD>В чем-то он прав. Написать конечно не сложно. А вот понять потом... Читая код на ФЯ ощущаю себя дешифровщиком.

Тут ты не прав. Всё зависит от опыта. Когда я сдавал лабораторные на лиспе, преподаваьтель толко мельком взглянув на листинг, сразу заметил: вот сдесь ошибка..., вот здесь можно упростить так..., вот сдесь сделано неоптимально... и т.д.
Надо ещё учесть, что если бы он спросил меня, что делает какая-либо строчка в коде, то мне пришлось бы очень сильно поднапрячься, чтобы вспомнить, что же я имел ввиду, когда её писал
... << Rsdn@Home 1.1.4 beta 1 >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[5]: Тебе мозги насиловать необязательно.
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.08.04 07:29
Оценка:
Здравствуйте, ArtDenis, Вы писали:

VD>>В чем-то он прав. Написать конечно не сложно. А вот понять потом... Читая код на ФЯ ощущаю себя дешифровщиком.


AD>Тут ты не прав. Всё зависит от опыта. Когда я сдавал лабораторные на лиспе, преподаваьтель толко мельком взглянув на листинг, сразу заметил: вот сдесь ошибка..., вот здесь можно упростить так..., вот сдесь сделано неоптимально... и т.д.


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

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


Вот именно. Так что в чем-то он прав.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Тебе мозги насиловать необязательно.
От: ON  
Дата: 22.08.04 07:43
Оценка:
>Вот именно. Так что в чем-то он прав.

Когда INTP_mihoshi предложил написать что-нибудь, я сразу запустил OCaml, написал

let rec a = function x -> x + 2;;
a 4;;

и получил 6. Если учесть, что я не видел пол года, ничего на нем не писал кроме такой ерунды, очевидно это у меня в пальцах запомнилось. Я не только не понял как это было отпарсено и выполнено, но и кто водил моими пальцами когда я это печатал... Полный мрак.
Posted via RSDN NNTP Server 1.9 beta
Re[7]: Тебе мозги насиловать необязательно.
От: ON  
Дата: 22.08.04 07:49
Оценка: :)
Вообще-то бывало и хуже.
Самая первая команда которую я набрал на компьютере была "color". Так как в Бейсике переменные инициализировись нулем, получил черные буквы на чемном экране. Позже в Турбо Паскале попал в clipboard. Что такое меню я тогда не знал. Тоже пришлось машину перезапускать.
Posted via RSDN NNTP Server 1.9 beta
Re[8]: Тебе мозги насиловать необязательно.
От: ON  
Дата: 22.08.04 07:57
Оценка:
А вот Windows-форма на F#. Ассемблер еще напоминает потому что писать приходиться в Far'e. Ходя довольно любопытно выходит управлять Excel'ем практически из командной строки.

open System
open System.Windows.Forms

let form = new Form()

let _ = form.Text <- "1st F# App"
let menu = form.Menu <- new MainMenu()
let mnuFile = form.Menu.MenuItems.Add("&File")
let mnuiSayHelloI = new MenuItem("&Say Hello",
new EventHandler(fun sender e -> form.Text <- "Hello"),
Shortcut.CtrlH)
let mnuiSayHello = mnuFile.MenuItems.Add(mnuiSayHelloI)

let _ = Application.Run(form)
Posted via RSDN NNTP Server 1.9 beta
Re: Почему никто не использует функциональные языки
От: WolfHound  
Дата: 22.08.04 08:39
Оценка: 15 (1)
Здравствуйте, Gaperton, Вы писали:

Короче скачал я тут OCaml... Блин... У недоделаного R# тулзов больше и пользоваться ими удобней не смотря на то что все тулзы делались на коленке и в основном для тестов. Причем эти тулзы уже можно применять вреальных проектах для автоматизированного поиска возможных логических ошибок в программах на C#.
Ну что сложно было сделать табконтрол и на один таб поместить нормальный редактор, а на другой консоль? И сделать несколько шорткатов. До этого сложно додуматься? Или сложно реализовать?
Короче это не смотря на всю супурпуперность о которой ты говоришь использовать нельзя.
Итого: Судя по OCaml воз и ныне там.
... << RSDN@Home 1.1.4 rev. 142 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: ФЯ
От: INTP_mihoshi Россия  
Дата: 22.08.04 12:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>То есть тебе самому смешно?

VD>Если язык требует серьезного опыта для чтения чужого кода, то это делает его практически непригодным для использования в команде.

А тебе не смешно? Было сказано, что опытный программист легко понимает чужой код на ФЯ. Ты можешь сказать то же самое про ИЯ? Ты всегда легко понимашь чужой код? Включая код, написанные неопытными программистами?
Re[2]: Ну, если нет кнопочек, то делать неча...
От: INTP_mihoshi Россия  
Дата: 22.08.04 13:14
Оценка: 18 (1)
Здравствуйте, WolfHound, Вы писали:

WH>Короче скачал я тут OCaml... Блин... У недоделаного R# тулзов больше и пользоваться ими удобней не смотря на то что все тулзы делались на коленке и в основном для тестов. Причем эти тулзы уже можно применять вреальных проектах для автоматизированного поиска возможных логических ошибок в программах на C#.


Конкретно, чего именно тебе не хватает в Caml, чтое есть в R#?

Прежде чем отвечать, взгляни на Camlp4
здесь

Camlp4 is a preprocessor for OCaml. As a preprocessor, you can do syntax extensions to your OCaml programs. But Camlp4 also provides some other features:

    * A system of grammars
    * A kind of macros called quotations
    * A revised syntax for OCaml
    * A pretty printing system of OCaml programs
    * and other: extensible functions, functional streams, .


У меня сордается ощущение, что по возможностям эта штука покрывает R# как бык овцу. Возможно, обманчивое У него же нет кнопочек...

WH>Ну что сложно было сделать табконтрол и на один таб поместить нормальный редактор, а на другой консоль? И сделать несколько шорткатов. До этого сложно додуматься? Или сложно реализовать?


Просто. Имху достаточно часа от силы и знания lablTk.

WH>Короче это не смотря на всю супурпуперность о которой ты говоришь использовать нельзя.

WH>Итого: Судя по OCaml воз и ныне там.

здесь

>   Q3. What kind of development framework are available in spirit of
>       Delphi/Kylix/Glade?

Emacs! You need something else??



И вообще лучше потри ocamlwin.exe. Он там от лукавого и действительно крив. Запускай ocaml.exe — честное консольное приложение. Дебаггеры и полноценное IDE есть, но почему-то только под никсами...
здесь
Конечно, если ты хочешь действительно разобраться в вопросе.
Re[3]: The graphical interface to the OCaml debugger.
От: INTP_mihoshi Россия  
Дата: 22.08.04 14:39
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

Вдогонку — кому лень искать может взглянуть на интерфейс дебаггера здесь

А это собственно сайт Cameleon
Re[8]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 16:19
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Реализация ФЯ была с самого начала сопряжена с большими затратами. К моменту, когда они попытались попасть в прикладное программирование, сложилось как минимум поколение (а то и не одно) людей, уверенных, что язык общего назначения должен быть императивным. В итоге приживались только те технологии, которые не слишком нарушали эту догму. При этом, что характерно, в узких нишах ФЯ таки сумели прорваться — SQL применяется повсеместно. Как ни странно, оказалось, что императивная обработка данных не устраивает даже ярых противников ФЯ. Кроме того, тут речь идет не о мелких шажках типа порядка вычисления аргументов, а о глобальных оптимизациях. И вот тут-то отсутствие императивности начало рулить со страшной силой, не давая программисту навязать умному серверу свои убогие представления о наилучшем способе получения результата.


Антон, а не кажется тебе что ты слишком широко трактуешь термин ФЯ? Если принять за ФЯ sql то очень большое количество языков попадут под это определение. Причем часть из них не воспринимается как средство программирования (например язык запросов любого поисковика) или не позиционируется как язык программирования (как к примеру тот же xslt).
А в вышеупомянутой статье имхо трактовка куда уже. И это понятно почему — если обсуждать огромное количество декларативных и полудекларативных миниязыков то нет оттенка сенсационности.
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[9]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 22.08.04 17:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Антон, а не кажется тебе что ты слишком широко трактуешь термин ФЯ? Если принять за ФЯ sql то очень большое количество языков попадут под это определение. Причем часть из них не воспринимается как средство программирования (например язык запросов любого поисковика) или не позиционируется как язык программирования (как к примеру тот же xslt).


AVK>А в вышеупомянутой статье имхо трактовка куда уже. И это понятно почему — если обсуждать огромное количество декларативных и полудекларативных миниязыков то нет оттенка сенсационности.

Его (оттенка сенсационности) там и так нет.
А трактовка действительно поуже, ты прав. Примерно, как здесь: FAQ по функциональным языкам.
Re[10]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 17:06
Оценка:
Здравствуйте, Gaperton, Вы писали:

AVK>>А в вышеупомянутой статье имхо трактовка куда уже. И это понятно почему — если обсуждать огромное количество декларативных и полудекларативных миниязыков то нет оттенка сенсационности.

G>Его (оттенка сенсационности) там и так нет.

Есть есть. Увы, но такова особенность западной науки — любой успешный западный ученый это как правило популяризатор.
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[10]: Почему никто не использует функциональные языки
От: Павел Леонов Россия icq: 138726397
Дата: 22.08.04 17:17
Оценка:
Здравствуйте, Gaperton, Вы писали :

AVK>>А в вышеупомянутой статье имхо трактовка куда уже. И это понятно

AVK>>почему — если обсуждать огромное количество декларативных и
AVK>>полудекларативных миниязыков то нет оттенка сенсационности.
G> Его (оттенка сенсационности) там и так нет.
G> А трактовка действительно поуже, ты прав. Примерно, как здесь:
G> FAQ по функциональным<br />
<span class='lineQuote level1'>G&gt; языкам</span>
.


С определением соглашусь, растолкуйте пожалуйста, почему SQL не подпадает под него?
Posted via RSDN NNTP Server 1.9 beta
Re[11]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 22.08.04 17:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Gaperton, Вы писали:


AVK>>>А в вышеупомянутой статье имхо трактовка куда уже. И это понятно почему — если обсуждать огромное количество декларативных и полудекларативных миниязыков то нет оттенка сенсационности.

G>>Его (оттенка сенсационности) там и так нет.

AVK>Есть есть. Увы, но такова особенность западной науки — любой успешный западный ученый это как правило популяризатор.

Про особенность западной науки — да, так часто бывает . И таки в чем по твоему оттенок сенсационности в этой статье?
Re[7]: ФЯ
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.08.04 17:19
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>А тебе не смешно?



Нет.

INT> Было сказано, что опытный программист легко понимает чужой код на ФЯ.


Где было сказано? И потом речь он не очень поытных.

INT> Ты можешь сказать то же самое про ИЯ?


В общем, да. Понять его проще.

INT> Ты всегда легко понимашь чужой код? Включая код, написанные неопытными программистами?


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

Кстати, в дотне и без кода. Я не раз разбирался в декомпилированном коде фрэймворка.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Ну, если нет кнопочек, то делать неча...
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.08.04 17:19
Оценка: 4 (1) +1
Здравствуйте, INTP_mihoshi, Вы писали:

INT>И вообще лучше потри ocamlwin.exe. Он там от лукавого и действительно крив. Запускай ocaml.exe — честное консольное приложение. Дебаггеры и полноценное IDE есть, но почему-то только под никсами...

INT>здесь
INT>Конечно, если ты хочешь действительно разобраться в вопросе.

Собственно полное подтверждение слов WolfHound-а. Не ставить же мне БСД или Линукс чтобы поиграться с языком?
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Ну, если нет кнопочек, то делать неча...
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.08.04 17:19
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Прежде чем отвечать, взгляни на Camlp4

INT>здесь

Кстати, даже внешний вид док выглядит так как будто авторам плевать на тех кто их будет четать.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.