@haskellru

Страница 1357 из 1551
Imants
23.07.2018
06:05:42
Александр
23.07.2018
06:54:21
Ох, такой срачик пропустил ? И да, Эрланг и Скала не ФЯ, так как не облегчают композицию функций. И да, Эрланг - это ООП в Алан Кеевском смысле

Google
Александр
23.07.2018
07:11:39
Облегчение ФП = простая композиция + простое каррирование

Vadim
23.07.2018
07:13:36
Yuriy
23.07.2018
07:13:47
Облегчение ФП = простая композиция + простое каррирование
а Лисп как облегчает? или он тоже не функциональный?

Vadim
23.07.2018
07:13:54
_не облегчает_
у тебя черезчур громкое заявление.Я как то особых аргументов не увидел

Александр
23.07.2018
07:14:02
Vadim
23.07.2018
07:15:03
где правила группы?Я не вижу можно ли хуесосить людей

Alexander
23.07.2018
07:22:29
где правила группы?Я не вижу можно ли хуесосить людей
правил нету, использование слова "хуесосить" и дискуссии в таком стиле точно запрещены. С пассивной агрессией и обидами - сложнее, их детектить сложно

написанных правил нету и не будет. Руководствуйтесь common sense, и нормами общения в приличном обществе

Александр
23.07.2018
07:25:20
Google
Alexander
23.07.2018
07:25:35
Yuriy
23.07.2018
07:26:14
а вы о каком конкретно лиспе?
о тех из них, которые считаются функциональными. Схема, Кложа, наверно

Alexander
23.07.2018
07:26:46
хотя второе уже не ФП, а метапрограммирование

Yuriy
23.07.2018
07:27:24
ну тогда "всё есть выражение", "код как данные"
как это связано с функциональщиной и облегчением?

Alexander
23.07.2018
07:27:40
собственно лиспы это же не про ФП, а про метапрограммирование

Yuriy
23.07.2018
07:48:37
а как же первая реализация лямбда-исчисления?

A64m
23.07.2018
07:48:42
фп - это такое местечковое шотландское явление, даже эдинбуржское все что происходит из работ милнера, тернера и работающих над нпл - фя, остальное нет.

(т.е. тернер-то выбивается из этого географического правила, но у остальных все в порядке с этим)

IC
23.07.2018
08:17:27
> stack new now allows template names of the form username/foo to download from a user other than commercialstack on Github, and can be prefixed with the service github:, gitlab:, or bitbucket:. Так сломим царство гитхаба ростовщического. Только в такие инструменты не стыдно веровать.

Index
23.07.2018
08:20:06
Я это просто к тому, что мощь системы типов не обязательно соседствует с их статической проверкой.
Типы это разновидность статического анализа, которую плюс-минус понятно как реализовывать.

Это не предел мечтаний, можно и другие системы анализа придумать, но как их реализовывать толком неясно

А все что динамическое, это не типы в принципе

Советую прочитать секцию 1.1 в "Types and Programming Languages" Пирса

Если честно, вынести б эту главу на какую-нибудь веб-страницу и кидать ссылку каждый раз, когда начинается ко-ко-ко про то, что динамические типы это не оксюморон

A64m
23.07.2018
08:32:45
тут и так накидали уже, на двух языках

Александр
23.07.2018
08:33:05
Эти хаскеллисты такие снобы. Не дают другим причаститься к лагерю ФПшников, динамические ЯП не считают за ЯП, и говорят, что там типов нет...

Alister
23.07.2018
08:33:44
есть там типы

точнее тип

?

Google
A64m
23.07.2018
08:34:40
поскольку сейчас ФП-фичи той или иной степени костыльности во всех языках - определять принадлежность как ФЯ по минимуму - это значит все языки как ФЯ определить

Александр
23.07.2018
08:36:05
поскольку сейчас ФП-фичи той или иной степени костыльности во всех языках - определять принадлежность как ФЯ по минимуму - это значит все языки как ФЯ определить
Ну ладно, это я могу понять, это вопрос скользский. Но что делать с эрлангистами, которые себя ФПшниками считают, но, например, никогда не пользовались функтором?

Или со скалистами, которые пишут на Скале как на Джаве, но из-за самого факта использования Скалы считают себя функциональщиками?

A64m
23.07.2018
08:37:07
эрлангистов скоро не будет - не будет и проблемы



Александр
23.07.2018
08:37:37
В то же время, когда JS-разработчики, композируя функции, даже не догадываются, что делают ФП?

Александр
23.07.2018
08:38:01
а зачем с ними что-то делать?
Чтобы мифы не распространяли.

A
23.07.2018
08:39:00
?

ты начал делать call/cc в js?

Alister
23.07.2018
08:39:58
начал делать частичные функции, нормально использовать трамплины и рекурсию где можно

Alister
23.07.2018
08:40:48
и стараюсь писать функции без стейта через мапы и функторы

???????
23.07.2018
08:44:07
Эти хаскеллисты такие снобы. Не дают другим причаститься к лагерю ФПшников, динамические ЯП не считают за ЯП, и говорят, что там типов нет...
Да и Haskell не ФП чо уж там. Та логическая система которую задаёт Haskell своей системой типов очевидно противоречива, поэтому о каких гарантиях и типах может идти речь, если язык разрешает писать лапшу.

A64m
23.07.2018
08:45:47
вы продолжаете настаивать на том, что типы якобы означают обязательно какие-то интересные гарантии, хотя сами же приводили пример плюсов где типы есть а с гарантиями все не особо хорошо

потому что хаскель это язык с удобствами для написания обобщенного кода с минимальной безопасностью для того чтоб это все не разваливалось

не пруфассистант. все эти потуги в сторону "тотальности" в хаскеле - это как ФП на C++

Александр
23.07.2018
08:47:21
Мы же уже выяснили, что эта картинка не может свидетельствовать о снижении абсолютного количества разработчиков/проектов?

A64m
23.07.2018
08:47:43
да, но это не важно

Александр
23.07.2018
08:50:03
да, но это не важно
Ну, вообще есть Прокопов, который отказался от Эрланга в пользу Кложи, хотя и неизвестно, это разовый случай или тенденция.

Google
A64m
23.07.2018
08:50:36
кложа на графике падает быстрее эрланга

A64m
23.07.2018
08:52:34
ну да, можно не давать программисту доступ к мутабельным ссылкам, например, и прочие похожие ограничения ввести, но это не для языка общего назначения, конечно

Александр
23.07.2018
08:53:25
И приводил пример Erlang'а в котором у вас типов нет, но гарантии они какие-то да дают.
Разве гарантия == гарантия в рантайме? Такая гарантия не очень полезна. Гарантии от тестов даже поболе будут

A64m
23.07.2018
08:53:47
т.е. типы и "гарантии" совсем не одно и то же. типы в статике для генерации кода, а гарантии - это как повезет (чаще всего никак не повезет)

???????
23.07.2018
08:59:23
Разве гарантия == гарантия в рантайме? Такая гарантия не очень полезна. Гарантии от тестов даже поболе будут
Да не, очень даже полезна. Если у тебя число со строкой не складывается в рантайме, а падает или начинает в лог что-нибудь гавнякать, то это очень полезная гарантия.

Index
23.07.2018
08:59:38
Только она не про типы

Admin
ERROR: S client not available

A64m
23.07.2018
08:59:48
с другой стороны, как верно подметил тот же пирс - особо интересных "гарантий" для того чтоб от них польза была и не надо

Index
23.07.2018
09:00:10
Проверки в рантайме это assertions

И их можно писать в тридцать раз более интересные, чем Int /= Bool

Александр
23.07.2018
09:03:24
Да не, очень даже полезна. Если у тебя число со строкой не складывается в рантайме, а падает или начинает в лог что-нибудь гавнякать, то это очень полезная гарантия.
Если падает в рантайме, то полезности в этом чуть. Хотя, Эрланг с его шапкозакидательской философией "let it crash" подталкивает разработчиков к толерантному отношению к падениям

???????
23.07.2018
09:03:37
Проверки в рантайме это assertions
Я сейчас спрошу и что же они проверяют, а мне ответят, что теги, а не типы, и всё начнётся заново и мне будут пытаться объяснить, что две сущности предназначенные для одного и того же, основанные на одном и том же, одинаковые на вид и крякающие одним голосом совершенно разные ибо у них разная реализация и обобщать их до одного понятия ни в коем случае нельзя.

Index
23.07.2018
09:04:16
И вот мой взгляд на проблему "динамического ФП" ФП - это парадигма, где функции (в правильном, математическом определении функции) это first-class values. При должном желании, писать в ФП-стиле можно на любом языке с подпрограммами, потому что избегать сайд-эффектов никто не запрещает. Но называться ФП-языком может только язык, который активно способствует такому стилю, т.е. статически запрещает сайд-эффекты

Александр
23.07.2018
09:04:17
> то две сущности предназначенные для одного и того же, основанные на одном и том же, одинаковые на вид и крякающие одним голосом совершенно разные Они могут быть эквивалентными в каком-либо смысле, но они разные.

Index
23.07.2018
09:05:05
> что две сущности предназначенные для одного и того же, основанные на одном и том же, одинаковые на вид и крякающие одним голосом совершенно разные Их фундаментальное различие в том, проверяются ли они до или после запуска программы

Я не знаю как можно просто закрыть глаза на это колоссальное различие и свалить две фундаментально разные вещи в одну кучу из-за поверхностной схожести

Google
Index
23.07.2018
09:06:44
Ну да, возьмем хотя бы тот факт, что рантайм-тегами могут служить только монотипы

А статические типы без полиморфизма это хуже, чем отсутствие типов

???????
23.07.2018
09:09:48
они не предназначены для одного и того же, не основаны на одном и том же, ничего общего кроме слова "типы" в названии у них нет
Они предназначенны для того, чтобы написанная программистом лапша никогда не выполнялась. Основаны они на принадлежности значения множеству допустимых значений, что эквивалентно принадлежности значения допустимому типу.

Index
23.07.2018
09:10:40
> эквивалентно принадлежности значения допустимому типу Ну во-первых не эквивалентно, а похоже в первом приближении

A64m
23.07.2018
09:10:54
одни чтоб не выполнялась до конца - как ассерты, а другие чтоб не компилировалась, и еще для других целей для генерации кода например

но пересечение по функциональности притянуть можно - только вот с ассертами у "динамических" "типов" пересечение получше

???????
23.07.2018
09:11:33
Index
23.07.2018
09:11:51
У нас есть соответствие Карри-Говарда, поэтому вполне себе эквивалентно.
Ничего там не эквивалентно, сейчас скажу какой кусок HoTT book читать

понятия множества и типа разные

Секция 1.1, "Type theory versus set theory"

Если что, то это общие соображения и они не про HoTT, это по сути кусок предисловия скорее

A64m
23.07.2018
09:13:54
типы классифицируют термы, а не значения, как процитировано выше из пирса - это синтаксическое явление, какие там значения-то?

Александр
23.07.2018
09:13:56
Ничего там не эквивалентно, сейчас скажу какой кусок HoTT book читать
А можно для тех, кто не в теме, эквивалентность и идентичность - это эквивалентные или идентичные понятия?

A64m
23.07.2018
09:14:16
я уж не говорю, что тайпчек различает вообще не населенные типы

Александр
23.07.2018
09:15:18
Спасибо, я стараюсь ?

???????
23.07.2018
09:15:22
A64m
23.07.2018
09:15:38
ну да, можно так сказать

???????
23.07.2018
09:17:10
Интересно. Получается в динамических языках проверяются теги, в статических тоже проверяются теги, но в другой момент времени и это СОВЕРШЕННО разные теги, а ещё одни можно называть типами, а другие нет.

A64m
23.07.2018
09:17:43
да, именно так

проверяются разные вещи, в разное время - видите, все разное

Страница 1357 из 1551