Re[3]: Ну, если нет кнопочек, то делать неча...
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.08.04 17:19
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

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


R# — это не препроцессор. Это генератор кода на базе AST.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: ФЯ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 18:21
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Что за быдляцкие манеры.

Спокойнее.
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[12]: ФЯ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 18:21
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF> Верно. Только для полноты картины вспомни о затратах ресурсов на переключение контекста.


Но тем не менее у нас получается в рамках одного проекта успешно применять C#, SQL, XSLT и собственный декларативный язык, причем зачастую один генерит программу на другом и наоборот, и что то переключение контекста особых проблем не вызывает.
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[12]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 18:55
Оценка:
Здравствуйте, Gaperton, Вы писали:

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

G>Про особенность западной науки — да, так часто бывает . И таки в чем по твоему оттенок сенсационности в этой статье?

А вот те самые ФЯ и то что они перевернут мир .
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[2]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.08.04 19:51
Оценка:
Здравствуйте, ON, Вы писали:

ON>Если эти языки такие могучие, что ж их фанаты не в состоянии самим себе IDE написать?

ON>Теоретики, понимаешь, короли мысли. В падлу себе сопли утереть?

Постарайся выражаться в более корректной форме.
... << RSDN@Home 1.1.4 beta 2 rev. 166>>
AVK Blog
Re[3]: Почему никто не использует функциональные языки
От: Цунцуяби Россия  
Дата: 23.08.04 03:52
Оценка: 18 (2) +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Цунцуяби, Вы писали:


Ц>>Что-то Gapertona сильно бьют

Ц>>в этой ветке

VD>Дык кусается, вот и бьют.


Надо вам как-то помириться ...
Водки выпить, штоли ...

Карринг — это по имени математика (вроде как ?) — где-то ты Влад спрашивал

Развели спор Лейбница с Ньютоном.

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

Я вообще предлагаю сделать на RSDN форум ФЯ.
Пусть там будет мало народу, хотя кто знает ?
Ведь и про электричество спрашивали какой из него толк.
Я считаю, что ФЯ нуждаются в продвижении ( популяризация — какое-то двусмысленное слово )
Может, например, для квантового компьютинга это будет одним из удобнейших применений, кто знает.
Так что пусть первопроходцы использования ФЯ топчут тропу через RSDN.
Не будет толка — ничего страшного. Будет — мы были ПЕРВЫМИ.
Re[9]: Почему никто не использует функциональные языки
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.08.04 04:07
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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

Это например какие?
Вот тут ссылка пробежала, цитирую:

Functional programming is a style of programming that emphasizes the evaluation of expressions, rather than execution of commands. The expressions in these language are formed by using functions to combine basic values. A functional language is a language that supports and encourages programming in a functional style.

В SQL у нас нет (если не рассматривать вендор-расширения) способа управлять исполнением команд. Мы вычисляем выражения. Да, он очень специфический, поскольку в нем есть только один тип операндов — реляции. Тем не менее, оператор select — чистое FP, прямо как здесь написано.
AVK>Причем часть из них не воспринимается как средство программирования (например язык запросов любого поисковика)
Ну, для FP язык поисковика не очень подходит. Для того, чтобы назвать его функциональным языком программирования, потребуется определить, что в нем является функцией, и что куда эта функция отображает. Кроме того, в нем не видно возможности строить новые функции, комбинируя существующие. (Хотя из вышеупомянутого определения и не следует такой необходимости, интуитвно от FP хочется больше, чем от вычисления ровно одной функции двух аргументов)
AVK>или не позиционируется как язык программирования (как к примеру тот же xslt).
Кстати, почему? Вот он (насколько я знаю) вполне "функционален". В том смысле, что в нем функции отображают элементы множества в элементы того же множества, что позволяет (теоретически) комбинировать их для получения новых функций.
... << RSDN@Home 1.1.4 beta 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Где у ФЯ матчасть?
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.08.04 05:00
Оценка:
Здравствуйте, ON, Вы писали:

ON>Где можно посмотреть исходники интерпретатора? Лучше что-нибудь по-проще, джентлементский набор.

ON>Для lisp'а у меня есть by Marc Adler, 735 строк, всего лишь.

ON>Для императивного языка мат.частью является процессор, если знаешь как он работает, как-то сразу и программы на ум приходят. Аналогично с Windows API. Хотелось бы узнать что за чудо понимает код ФЯ.


Не совсем понятно что ты хочешь — мат. часть или исходники? (ну вещи ведь совсем разные по сути) Если по поводу мат. части, то тут главенствуют вроде бы как лямбда-исчисления (знатоки меня поправят, если что)
Re[13]: Можно и попроще
От: faulx  
Дата: 23.08.04 06:18
Оценка:
Здравствуйте, VladD2, Вы писали:

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


INT>>В Haskell то, что ты написал, выглядит так.


INT>>
INT>> map xxx x
INT>>


VD>Рад за них. Но это совсем не понятно. Краткость не есть качество.


На вас не угодишь. А так понятнее?
foreach func list



VD>К сожалению, все же за меня уже сделан выбор. Я могу выбрать только вариации, но все они связаны с рекусрисей и как следствие с перестройкой мозга на рекурсивный лад. А мне хотелось бы получить возможности декларатиного задания алгоритмов без подобных жертв. И с простым и понятный синтаксисом. Ведь даже то что ты привел из OCaml довольно некрасиво выглядит.


Выскажу парадоксальную мысль. Если в вашей программе на ФЯ встречается рекурсия, значит, почти наверняка вы делаете что-то неправильно.

Дело в том, что с каждым ФЯ идет в поставке богатая библиотека и вся рекурсия спрятана в функциях этой библиотеки. Чтобы обработать список, никакой рекурсии не надо, вполне достаточно стандартных функций. В качестве аналога можно привести алгоритмы STL — при повсеместном их использовании количество циклов в программе на С++ резко сокращается. Вообще, STL — это такой маленький и уродливый аналог библиотеки ФЯ.
Re[7]: Это можно и попроще написать
От: INTP_mihoshi Россия  
Дата: 23.08.04 06:54
Оценка:
Здравствуйте, ON, Вы писали:

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

ON>a 4;;

let a x = x + 2;;
Re[10]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.08.04 07:36
Оценка: 32 (1)
Здравствуйте, Sinclair, Вы писали:

S> Да, он очень специфический, поскольку в нем есть только один тип операндов — реляции. Тем не менее, оператор select — чистое FP, прямо как здесь написано.


Вопрос в определении — в академическом смысле да, и sql и xslt частично ФЯ. Но в смысле практическом за ФЯ обычно принимают языки вроде ML и его потомков, и именно в таком смысле этот термин употребляется в статье.

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


y = f(x),
где x это вводимая фраза, y результат поиска, f(x) собственно искомая функция.

S> Кроме того, в нем не видно возможности строить новые функции, комбинируя существующие.


Почему? Например функция "" или функция + могут образовывать составную функцию.

S> (Хотя из вышеупомянутого определения и не следует такой необходимости, интуитвно от FP хочется больше, чем от вычисления ровно одной функции двух аргументов)


Интересно — сначала ты привел чисто формальное определение и чисто формально натянул его на декларативный sql, хотя он существенно отличается от форм записи реляционной алгебры, а теперь чисто интуитивно отказываешь в такой же операции в отношении языков поисковиков. Вобщем ты уж поределись — если берем формальное определение то подходят оба, если же интуитивное то не подходит ни один.

AVK>>или не позиционируется как язык программирования (как к примеру тот же xslt).

S>Кстати, почему?

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

S> Вот он (насколько я знаю) вполне "функционален".


Ровно как и вполне императивен.

S> В том смысле, что в нем функции отображают элементы множества в элементы того же множества,


Э нет. Функции (шаблоны) в нем отображают элементы входного множества в элементы выходного. Входное и выходное множество не пересекаются.

S> что позволяет (теоретически) комбинировать их для получения новых функций.


Почему теоретически? apply-templates осуществляет комбинацию в функциональном стиле, call-template в императивном. То и другое являются краеугольными камнями xslt.
... << RSDN@Home 1.1.4 beta 2 rev. 168>>
AVK Blog
Re[12]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 23.08.04 07:37
Оценка: +1
Здравствуйте, AndreyFedotov, Вы писали:


AF> И понятнее и проще. Но не функционально-языкасто. А потому есмь ересь и должно Mustdie (следуя логике проповедников ФЯ).

Ты уверен, что ты эту ветку прочитал, а не каку-нибудь другую? Про то, что циклы — это плохо, никто из здесь присутствующих не говорил. Хватит уже приписывать мне и остальным всякий бред. Заставлять тебя использовать ФЯ никто не собирается.

А вот про то, что рекурсия — "ацтой", и должно Mustdie, просто потому, что она кому-то непонятна, постов уже много. Вы последовательно доказываете, что Вадлер был слишком оптимистичен в своем последнем абзаце.
Re[11]: Почему никто не использует функциональные языки
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.08.04 07:43
Оценка:
Здравствуйте, AndrewVK, Вы писали:


S>> Кроме того, в нем не видно возможности строить новые функции, комбинируя существующие.


AVK>Почему? Например функция "" или функция + могут образовывать составную функцию.


Они могут работать с результатами, полученными от других поисков?
т.е. можно сделать так:
combine(google("красная"),google("шапочка")) ????????
где combine — это + (просто предст. в виде формулы), а google("шапочка") — это результат поиска слова "шапочка" (т.е. тупо страница гугла)
Что-то плоховато пересечение страниц гугла можно себе представить как комбинацию фунцкий...
Re[13]: Почему никто не использует функциональные языки
От: Gaperton http://gaperton.livejournal.com
Дата: 23.08.04 07:45
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


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

G>>Про особенность западной науки — да, так часто бывает . И таки в чем по твоему оттенок сенсационности в этой статье?
AVK>А вот те самые ФЯ и то что они перевернут мир .
Как странно, ты уже не первый, кто видит в ней ней то, чего там нет. Вон, с Федотовым поабзацно "вслух" читали — все равно не понимает. Проповедники ему везде мерещатся. Простая вроде статья. Понятная.
Re[4]: R# vs ФЯ :)
От: INTP_mihoshi Россия  
Дата: 23.08.04 07:50
Оценка: :)
Здравствуйте, VladD2, Вы писали:

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


VD>R# — это не препроцессор. Это генератор кода на базе AST.


Если ты не в курсе, то таки препроцессор. По крайней мере, проект называется "R# — препроцессор/компилятор"

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

Другой вопрос, что OCaml и без препроцессоров может о себе позаботиться Ему, в отличии от C#, костыли не нужны. Camlp4 может пригодиться, разве что, для АОП. Классы в нем есть, множественное наследование и темплейты included. А если бы классов и не было (или тебе они почему-то не понравились), то можно написать свои. Нет, для этого не нужен препроцессор, все в рамках языка. "Возможности вроде функциональных языков", сам понимаешь, имеются

Что касается парсинга, то да, есть парсеры на Ocaml, аналогичные Yacc/Lex. И они входят в стандартную поставку. Но также можно парсить без использования внешних форматов и это будет выглядеть не существенно сложнее. Нет, парсить можно не только функциональные языки. На сайте языка есть примеры парсеров, например, Паскаля и Лого.

Тут меня надо спросить, а почему же при всем при этом Ocaml не юзают все кому не лень. Ответ, я кажется, почти понял, но налеюсь, что его скажет кто-нибудь, кто знает этот язык лучше. Возможно, одна из причин в том, что практическая польза языка не только в том, что он позволяет делать, но и в том, что он не позволяет А вот со вторым у OCaml явные напряги
Re[12]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.08.04 07:57
Оценка:
Здравствуйте, Курилка, Вы писали:

S>>> Кроме того, в нем не видно возможности строить новые функции, комбинируя существующие.


AVK>>Почему? Например функция "" или функция + могут образовывать составную функцию.


К>Они могут работать с результатами, полученными от других поисков?


А при чем тут другие поисковики?
... << RSDN@Home 1.1.4 beta 2 rev. 168>>
AVK Blog
Re[13]: Почему никто не использует функциональные языки
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.08.04 08:12
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


S>>>> Кроме того, в нем не видно возможности строить новые функции, комбинируя существующие.


AVK>>>Почему? Например функция "" или функция + могут образовывать составную функцию.


К>>Они могут работать с результатами, полученными от других поисков?


AVK>А при чем тут другие поисковики?


Читай, что написано "других поисков", где ты там поисковики нашёл?
Re[3]: Где у ФЯ матчасть?
От: ON  
Дата: 23.08.04 08:24
Оценка:
From: Курилка

>Не совсем понятно что ты хочешь — мат. часть или исходники? (ну вещи ведь совсем разные по сути) Если по поводу мат. >части, то тут главенствуют вроде бы как лямбда-исчисления (знатоки меня поправят, если что)


И то и другое.
— теорию, желательно по-русски.
— какой-нибудь ML-интерпретатор в исходниках.
— хотя бы примерно описание как работает то, что ФЯ-компиляторы выдают.
Posted via RSDN NNTP Server 1.9 beta
Re[14]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.08.04 08:27
Оценка: 1 (1) +1 :)
Здравствуйте, Gaperton, Вы писали:

AVK>>А вот те самые ФЯ и то что они перевернут мир .

G>Как странно, ты уже не первый, кто видит в ней ней то, чего там нет. Вон, с Федотовым поабзацно "вслух" читали — все равно не понимает. Проповедники ему везде мерещатся. Простая вроде статья. Понятная.

А может ты не видишь? Когда один ошибается это еще ладно. А вот когда несколько человек воспринимают одинаково то закрадывается подозрение что не все так просто .

Собственно в самом начале мы видим такую фразу:

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


Оказывается существует способ в четыре раза быстрее писать и проще поддерживать, а его никто не использует. ВОт тебе и сенсация.
... << RSDN@Home 1.1.4 beta 2 rev. 168>>
AVK Blog
Re[14]: Почему никто не использует функциональные языки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.08.04 08:38
Оценка: -1
Здравствуйте, Курилка, Вы писали:

AVK>>А при чем тут другие поисковики?


К>Читай, что написано "других поисков", где ты там поисковики нашёл?


Понятно. Ты слишком узко трактуешь рекурсию. Возьмем к примеру язык гугля. Возьмем простейшую функцию — найти ссылки, содержащие слово. find(word) : hrefs. Записывается она так:

word


Едем дальше — теперь возьмем функцию найти ссылки, обязательно содержащие слово. req(hrefs) : hrefs. Таким образом req(find(word)) записывается так:

+word


Наконец берем функцию — найти фразу, содержашую либо одно, либо другое слово. or(hrefs1, hrefs2) : hrefs. Тогда or(find(word), req(find(word2))) запишется так:

word +word2


Понятно что в реальности так поисковик не работает, но это уже детали реализации, а внешне все прекрасно вгоняется в рамки функционального языка.
... << RSDN@Home 1.1.4 beta 2 rev. 168>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.