Re[2]: несложный ФЯ с человеческим лицом
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 03.04.08 07:00
Оценка:
Здравствуйте, nikov, Вы писали:

N>Посмотрите F#.


N>Гибридный (функционально-императивный) язык на платформе .NET, родственный с OCaml.

N>Есть карринг, оптимизация хвостовой рекурсии, автоматическая генерализация, list/sequence comprehensions, pattern matching. Планируют приделать классы типов.

N>Microsoft планирует включать его в стандартную поставку Visual Studio, сейчас поддержка в Visual Studio ставится отдельным инсталлятором.


С наскока не нашел, в F# есть аналог полиморфных вариантов OCalml?
Re[7]: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.04.08 12:46
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Ничего себе! Влад заявляет, что стандартная библиотека C++ богаче, чем в C#! Куда катится мир?


Ага. Богаче. Ровно на один класс. Вот только о том, что в ней нехватает даже говорить грустно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.04.08 12:53
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Идеально, конечно, было бы что-то вроде питона, но декларативный и с нужными фичами.


Простой ФЯ — это MS Excel. А любой язык потому и существует, что на нем можно решать не тривиальные задачи. А раз это так, то простым он уже не будет. Ну, или нужно дискутировать о том что значит "простой" и для кого.

Потом Питон очень даже не плохо выступает в роли ФЯ. В нем нет только паттерн-матчинга и алгеброических типов. Ну, их и в Лиспе нет (самопалы не всчет, их и на Питоне можно сворганить).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: несложный ФЯ с человеческим лицом
От: dmz Россия  
Дата: 03.04.08 14:08
Оценка: -1
VD>Простой ФЯ — это MS Excel. А любой язык потому и существует, что на нем можно решать не тривиальные задачи. А раз это так, то простым он уже не будет. Ну, или нужно дискутировать о том что значит "простой" и для кого.

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

VD>Потом Питон очень даже не плохо выступает в роли ФЯ. В нем нет только паттерн-матчинга и алгеброических типов. Ну, их и в Лиспе нет (самопалы не всчет, их и на Питоне можно сворганить).


Нет также оптимизации хвостовой рекурсии. А потом что значит, "только паттерн матчинга". Мне паттерн матчинг и нужен как раз. И вообще на нем писать в функциональном стиле неудобно. И вообще после эрланга просто колбасит, так не хватает матчинга. Очень красивые решения с ним получаются.
Re[5]: несложный ФЯ с человеческим лицом
От: Kisloid Мухосранск  
Дата: 04.04.08 10:56
Оценка:
Здравствуйте, Code Digger, Вы писали:

CD>А то я хотел сохранить себе страничку с ними и поизучать код на досуге...


Ага, ты был бы удивлен увидев там мой код на J, т.к. я там с умным видом написал какую-то белиберду, а никто таки кажется и не заметил
... << RSDN@Home 1.2.0 alpha rev. 786>>
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[6]: несложный ФЯ с человеческим лицом
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 04.04.08 13:37
Оценка:
Здравствуйте, Kisloid, Вы писали:

K>Ага, ты был бы удивлен увидев там мой код на J, т.к. я там с умным видом написал какую-то белиберду, а никто таки кажется и не заметил


Это потому что на J все выглядит как белиберда, никто даже не пытается прочитать.
Re[6]: несложный ФЯ с человеческим лицом
От: Cyberax Марс  
Дата: 04.04.08 14:25
Оценка: +1 :))) :)
Здравствуйте, Kisloid, Вы писали:

CD>>А то я хотел сохранить себе страничку с ними и поизучать код на досуге...

K>Ага, ты был бы удивлен увидев там мой код на J, т.к. я там с умным видом написал какую-то белиберду, а никто таки кажется и не заметил
А ты проверял? Может оно работает!
Sapienti sat!
Re[3]: несложный ФЯ с человеческим лицом
От: LaPerouse  
Дата: 11.04.08 09:29
Оценка:
Здравствуйте, dmz, Вы писали:


VD>>Простой ФЯ — это MS Excel. А любой язык потому и существует, что на нем можно решать не тривиальные задачи. А раз это так, то простым он уже не будет. Ну, или нужно дискутировать о том что значит "простой" и для кого.


dmz>Ну вот руби и питон простые, а задачи позволяют решать любые. Вот эрланг простой, а вообще функциональный при том. Собственно, эрланг был бы супер, если бы быстрый базовый ввод/вывод и поддержка строк в языке.


Не только. Возможность применения в guard-expressions только bif-ов убивает. Нафига тогда эти guard-ы сдались?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[3]: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.08 09:29
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Ну вот руби и питон простые, а задачи позволяют решать любые.


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

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

dmz>Вот эрланг простой, а вообще функциональный при том. Собственно, эрланг был бы супер, если бы быстрый базовый ввод/вывод и поддержка строк в языке.


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

VD>>Потом Питон очень даже не плохо выступает в роли ФЯ. В нем нет только паттерн-матчинга и алгеброических типов. Ну, их и в Лиспе нет (самопалы не всчет, их и на Питоне можно сворганить).


dmz>Нет также оптимизации хвостовой рекурсии.


Вот тут ничего не могу сказать, только даже если это так, то особо мешать программированию в функциональном стиле это мешать не должно.

dmz>А потом что значит, "только паттерн матчинга". Мне паттерн матчинг и нужен как раз. И вообще на нем писать в функциональном стиле неудобно. И вообще после эрланга просто колбасит, так не хватает матчинга. Очень красивые решения с ним получаются.


Дык матчинг уже не просто. Согласен, что вещь полезная, но полезная для реальной работы, а не как финтифлюшка для изучения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: несложный ФЯ с человеческим лицом
От: Mamut Швеция http://dmitriid.com
Дата: 19.04.08 09:40
Оценка: +1
dmz>>Ну вот руби и питон простые, а задачи позволяют решать любые.

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


Как и немерле, они позволяют к этим вещам даже и не прикасаться Начинать с простого, продвигаться все выше и выше
... << RSDN@Home 1.2.0 alpha 4 rev. 1064>>


dmitriid.comGitHubLinkedIn
Re[4]: несложный ФЯ с человеческим лицом
От: Аноним  
Дата: 19.04.08 14:30
Оценка: -1
Здравствуйте, VladD2, Вы писали:

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


"разные континюэшоны" — это общая концепция, к конкретному языко отношение имеющая слабое.

всё равно что сказать что язык Х — трудный "из за всяких там лямбд, замыканий и т.п."
Re[5]: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.04.08 21:27
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Как и немерле, они позволяют к этим вещам даже и не прикасаться Начинать с простого, продвигаться все выше и выше


Си тоже позволяет писать примитивные, детские примеры — это не делает этот язык проще.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: несложный ФЯ с человеческим лицом
От: Mamut Швеция http://dmitriid.com
Дата: 20.04.08 09:16
Оценка:
M>>Как и немерле, они позволяют к этим вещам даже и не прикасаться Начинать с простого, продвигаться все выше и выше

VD>Си тоже позволяет писать примитивные, детские примеры — это не делает этот язык проще.


Тогда, думаю, надо определить категории простоты

Например, на Питоне легче начать программировать, чем на С (потому что нет связки код->компилятор->линкер и есть REPL)

С проще Питона, потмоу что там нет различных высокоуровневых фич

Питон проще С++, потому что высокоуровневые фичи достигаются в нем проще/понятнее, чем в С++

И так далее
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[7]: несложный ФЯ с человеческим лицом
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.04.08 13:09
Оценка: 78 (4) +5
Здравствуйте, Mamut, Вы писали:

M>Тогда, думаю, надо определить категории простоты


Читаем внимательно:
http://rsdn.ru/forum/message/2901845.1.aspx
Автор: VladD2
Дата: 03.04.08

Простой ФЯ — это MS Excel. А любой язык потому и существует, что на нем можно решать не тривиальные задачи. А раз это так, то простым он уже не будет. Ну, или нужно дискутировать о том что значит "простой" и для кого.


M>Например, на Питоне легче начать программировать, чем на С (потому что нет связки код->компилятор->линкер и есть REPL)


Лично я начинал программировать на C. И с полной уверенностью заявляю, что — это неправда. Даже в начале 90-ых компиляторы прекрасно позволяли написать:
compiler file-name.c

и получить на выходе file-name.exe или file-name.com.
Если взять любую IDE (которых и тогда хватало, а сейчас уже завались просто), то все что нужно будет сделать новичку — это освоить создание нового проекта (Ctrl+Shift+N в VS и одно нажатие на Enter после этого) и нажатие на кнопку F5/F9 для запуска кода на выполнение/отладку.

M>С проще Питона, потмоу что там нет различных высокоуровневых фич

M>Питон проще С++, потому что высокоуровневые фичи достигаются в нем проще/понятнее, чем в С++

По сравнению с С++ любой язык кажется простым. А вот скажем если сравнить Питон с Явой или Шарпом, то лично я бы предпочел последние. Многое в Питоне мне кажется непонятным и неудобный.

Но опять же это все личное мнение. Если бы я программировал на Питоне 10 лет к ряду по 8 часов в день, а C# (скажем) пару раз запустил бы за это время, то Питон для меня был бы верхом простоты. Но если бы я программировал бы на С++, а Питон в глаза не видел (как оно и было), то "простым" для меня был бы С++.

Так что личные оценки надо опускать. Простота, на мой взгляд может рассматриваться толко в двух аспектах.
1. Простота начального освоения человеком никогда на нем не работавшем (без бэкраунда вообще).
2. Простота освоения 99% фич, т.е. то насколько сложно эффективно применять этот язык в реальных проектах задействуя, при этом, самые продвинутые фичи.

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

Ну, а по второму критерию Питон откровенно сложный язык.

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

ЗЫ

А вообще, если бы те кто возражают сначала читали бы предысторию, то многие вопросы отпали бы сами собой. Я как раз и сказал, что на Питоне вполне возможно осваивать азы ФП. И что нет смысла искать мифический "простой ФЯ" если человек знаком с Питоном (или скажем C#-ом).

Скажу больше... Понимание ФП, как в прочем, и не понимание не имеет отношения к языку! Не понимать ФП с огромным успехом можно на Лиспе! А понимать на С! ФП — это общий взгляд на решение проблем стоящим перед программистом. Именно по этому это парадигма, а не паттерн.

Так что мой ответ будет простым. Простой ФЯ — это любой ЯП мало мальски поддерживающих ФП (лябд и замыканий достаточно) и при этом знакомый тому человеку который хочет изучить ФП. Для людей знакомых с Питоном — это питон. Для людей знакомых с Руби — это руби. Для людей знакомых с Явой или С++ — это ... C# 3.0, я думаю, так как все же в этих языках поддержка ФП хотя и имеется, но очень слабая. Она скорее способна вызвать отвращение к ФП нежели помочь его освоить. Конечно полноценные ФП языки вроде Хаскеля, Эрланга или того же Немерла дадут больше, но на начальном этапе они никак не могут рассматриваться в качестве простых. Так как прийдется осваивать столько новых концепций, что результат скорее всего будет отрицательным.

В прочем многое зависит от качества обучения и умения человека учиться. Те кто хотели сами с нуля освоили Хаскели. А те кто не хотели или кому не повезло с учителем не освоили полноценно и С++.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: несложный ФЯ с человеческим лицом
От: rv82 Россия rv82.blogspot.com
Дата: 23.04.08 01:35
Оценка: 2 (1)
Здравствуйте, dmz, Вы писали:

dmz>Привет,



dmz>а нет ли ФЯ с относительно несложным синтаксисом, в первую очередь для обучения, который бы годился, как замена питона для всякого рода скриптинга, ну и например, что бы на нем писать всякого рода вычислительные задачи ( кластеризация информации на странице, etc).


dmz>Хочется что-то вроде питона, но с настоящими list-comprehensions, паттерн-матчингом (особенно), гарантированной развертки tail recursion. Эрланг кажется тяжеловесным для этой задачи, плюс тормозной файловый ввод-вывод и регекспы / слабая поддержка строк. OCaml кажется несколько сложным, т.е. он явно сложнее эрланга. А есть еще что-нибудь (про nemerle знаю, но оно, судя по всему пока нестабильно?)


dmz>Идеально, конечно, было бы что-то вроде питона, но декларативный и с нужными фичами.


Изучайте Standard ML. Он несравненно проще Ocaml'a и Haskell'a, при этом не уступает им по возможностям (сам я пользуюсь SML/NJ). Многие рекомендуют начинать изучение с Moscow ML. Я бы не рекомендовал этого делать, т.к. когда дойдёте до изучения модулей, начнутся проблемы с компиляцией. Лучше сразу выбрать SML/NJ или MLton (если у вас Linux).
Re[2]: несложный ФЯ с человеческим лицом
От: FR  
Дата: 26.04.08 14:01
Оценка:
Здравствуйте, rv82, Вы писали:


R>Изучайте Standard ML. Он несравненно проще Ocaml'a и Haskell'a, при этом не уступает им по возможностям (сам я пользуюсь SML/NJ). Многие рекомендуют начинать изучение с Moscow ML. Я бы не рекомендовал этого делать, т.к. когда дойдёте до изучения модулей, начнутся проблемы с компиляцией. Лучше сразу выбрать SML/NJ или MLton (если у вас Linux).


Угу ML для обучения очень хорош.
Но к сожалению, не очень хорош для повседневной работы.
MLTon кстати вполне нормально и под windows пускается (cygwin версия)
Re[3]: несложный ФЯ с человеческим лицом
От: crable США  
Дата: 27.04.08 06:09
Оценка:
Здравствуйте, FR, Вы писали:

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


FR>Угу ML для обучения очень хорош.

FR>Но к сожалению, не очень хорош для повседневной работы.
FR>MLTon кстати вполне нормально и под windows пускается (cygwin версия)

а можно немного подробнее про "не очень хорош для повседневной работы"?
The last good thing written in C was Franz Schubert's Symphony No. 9.
Re[4]: несложный ФЯ с человеческим лицом
От: FR  
Дата: 27.04.08 10:22
Оценка: 4 (1)
Здравствуйте, crable, Вы писали:

C>а можно немного подробнее про "не очень хорош для повседневной работы"?


Мне показалась у него та же проблема что и у C++ несколько не полностью
совместимых реализаций и многие библиотеки только под конкретную реализацию.
Ну и вообще в сравнении с тем же Ocaml'ом очень бедные бибилотеки, нет никакой
практически подержки. Кстати как язык мне Standard ML кажется более симпатичным
чем Ocaml, но для работы я выбрал бы именнно Ocaml.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.