@Fsharp_chat

Страница 105 из 772
Летучая
08.05.2017
13:07:17
Всегда бесило такое поведение

на F# прям красота надо запостить в примеры кода

Friedrich
08.05.2017
13:07:39
Оно вполне понятное, тут вам на C++!

Igor
08.05.2017
13:07:52
Не JS ?

Google
Friedrich
08.05.2017
13:08:17
В тайпскрипте, например, вопрос типизации такого выражения не стоит, потому что числовой тип только один :(

Летучая
08.05.2017
13:08:21
Оно вполне понятное, тут вам на C++!
угу но тем не менее в стандартную либу обходные пути, чтоб можно было делать такие методы

а если бы ещё запелили что-то типа where T : int or double or float

Friedrich
08.05.2017
13:08:47
угу но тем не менее в стандартную либу обходные пути, чтоб можно было делать такие методы
Есть разговоры про тайпклассы в C#. Тогда это будет работать.

У меня была мысль обрисовать ситуацию с помощью тайпклассов, но я решил наших C#-друзей не пугать этими раздутыми (пока) определениями :)

Pig
08.05.2017
13:10:23
Дети, а вот это лямбда-2!

Friedrich
08.05.2017
13:18:11
Вот реализация на "тайпклассах" (в такой код бы развернулся тайпкласс из имеющегося пропозала на тайпклассы в C#): https://hastebin.com/ujatihazus.cs Обратите внимание на трюк с new TypeClass(), который возможен благодаря struct constraint.

Evgeniy
08.05.2017
13:45:44
Тайпклассы — это то, что появится сначала в C#, а только потом в F#.

Igor
08.05.2017
13:54:38
Friedrich
08.05.2017
13:55:19
Ну, я тут конкретную задачу решал. Если нужно было бы ещё более обобщённое решение, и у меня были бы стандартные тайпклассы, то можно было бы сделать и поизящнее.

Илья
08.05.2017
13:55:28
На F# можно ботов для телеграма писать?

Friedrich
08.05.2017
13:55:58
На F# можно ботов для телеграма писать?
Уже четвёртый за последнюю пару дней! :) Да, можно, народ из этого чата пишет.

Google
Илья
08.05.2017
13:56:53
Уже четвёртый за последнюю пару дней! :) Да, можно, народ из этого чата пишет.
На чем именно? Какие либы для этого есть? Понятно что на любом языке можно гольными запросами херачить, но меня интересуют конкретные библиотеки-обертки над апи.

Летучая
08.05.2017
14:02:17
@Dolfik эфшарповую либу для этих целей писал, не знаю, дописал или нет.

Nikolay
08.05.2017
14:03:56
Времени совсем нет, вчера вечером только вернулся домой, дел куча :)

Но PR приветствуются)

Friedrich
08.05.2017
14:05:15
Но PR приветствуются)
Ссылку-то дай на репозиторий!

Nikolay
08.05.2017
14:05:33
https://github.com/Dolfik1/Funogram

Илья
08.05.2017
14:09:41
Вот это работает? Хз? https://github.com/monad/TeleFone

Friedrich
08.05.2017
14:12:13
Это в прошлом месяце было уже :)

Nikolay
08.05.2017
14:13:18
Igor
08.05.2017
14:13:33
Имхо эти все либы от лукавова, есть же интеропт ? (и проработанные C# либы)

Nikolay
08.05.2017
14:14:11
getUpdates, и то не со всеми аргументами, и sendMessage

И тоже не со всеми аргументами)

Плюс не будет работать на .Net Core

Igor
08.05.2017
14:20:33
Плюс не будет работать на .Net Core
Кстати насчет DSL и option параметров. Можешь посмотреть на апи которое предоставляет Fable для React(Native). Там очень “интересный” подход со списками и фабриками параметров. Кода наверное будет очень много, зато расширяемость на высоте. Можно хоть 100 новых опциональных параметров добавить к запросу.

Илья
08.05.2017
15:03:50
никак не врубаюсь для чего нужны монады(

Pig
08.05.2017
15:05:22
что бы мухлевать с эффектами

Google
Илья
08.05.2017
15:05:47
что бы мухлевать с эффектами
что? какими эффектами? о_О

Friedrich
08.05.2017
15:07:30
что? какими эффектами? о_О
Имеется в виду понятие "эффектов" из некоторых развитых систем типов. Там под эффектами обычно понимают всякие интересные взаимодействия — ввод-вывод, например.

Pig
08.05.2017
15:07:45
разными - исключениями, вводом-выводом, логами, изменяемым состоянием, недетерминированными вычислениями

Igor
08.05.2017
15:08:00
никак не врубаюсь для чего нужны монады(
Тут доходчиво объясняется https://youtu.be/PlFgKV0ZXoE (хотя лучше смотреть весь плейлист сначала)

Friedrich
08.05.2017
15:08:16
никак не врубаюсь для чего нужны монады(
Вообще говоря, монада — это способ абстракции некоторых видов вычислений. Точно такой же способ, как, например, цикл.

Friedrich
08.05.2017
15:08:34
Про цикл же всё понятно, правда? И никто не делает из циклов какого-то культа.

Pig
08.05.2017
15:08:35
я до сих пор не знаю что это такое, но пользуюсь

Igor
08.05.2017
15:09:26
нееее... только не хаскел...
Ну не знаю, так в чате бессмысленно объяснять. Ты либо ничего не поймёшь или поймёшь неправильно. А в виде целый час расжевывается на простых примерах.

Илья
08.05.2017
15:09:39
Вообще говоря, монада — это способ абстракции некоторых видов вычислений. Точно такой же способ, как, например, цикл.
просто вот например говорят что типа монада MayBe избавляет от проверок на null, но ведь не правда же... они просто заменяются на проверки типа HasValue

Pig
08.05.2017
15:11:48
null это такой очень грязный вариант Maybe

Friedrich
08.05.2017
15:12:04
В смысле, ну правда, избавляют же.

Хотя он там под капотом и остаётся.

Igor
08.05.2017
15:12:36
Я тут кстати пытаются всосать "свободные монады" (free monads). Есть у кого опыт?

Pig
08.05.2017
15:12:42
а исключения в C#/Java это такой странный вариант типов-сумм

Илья
08.05.2017
15:12:52
писать a.HasValue длиннее чем a != null

Pig
08.05.2017
15:13:14
Так никто не пишет

Friedrich
08.05.2017
15:13:29
Так никто не пишет
Я и так, и эдак пишу, по настроению :)

Evgeniy
08.05.2017
15:13:33
@DarkByte2016 Ты путаешь контейнер и монаду.

Google
Летучая
08.05.2017
15:13:47
нееее... только не хаскел...
Ты в чатике ЭфШарпа не хочешь слышать про Хаскель?

Илья
08.05.2017
15:14:17
Ты в чатике ЭфШарпа не хочешь слышать про Хаскель?
ну, это же чатик не про хаскел верно?

Friedrich
08.05.2017
15:14:27
Ну, в данном случае ссылка и правда совершенно уместная. Лекции Бартоша — хорошие, даже если ты не знаешь хаскеля.

Летучая
08.05.2017
15:14:39
ну, это же чатик не про хаскел верно?
Как будто очень много различий.

Монады по крайней мере и там и там есть.

Friedrich
08.05.2017
15:15:02
Ха, не совсем!

Летучая
08.05.2017
15:15:06
Хм?

Evgeniy
08.05.2017
15:15:26
@DarkByte2016 Я могу попробовать объяснить, когда здесь потише будет. :)

Friedrich
08.05.2017
15:15:34
В F# есть куда более прагматичная штука — computation expressions. Они позволяют в числе прочего реализовать и монады.

Admin
ERROR: S client not available

Pig
08.05.2017
15:15:54
А что в хаскеле непрагматичного?

Илья
08.05.2017
15:15:55
Как будто очень много различий.
Дохера. У хаскела вырвиглазный синтаксис это раз, его нигде на практике не используют, а соответственно нет смысла его учить это два, F# работает на платформе .NET это еще один плюс в его карму.

Friedrich
08.05.2017
15:16:12
Но Дон специально нигде про монады не говорит, потому что это слишком расплывчатое понятие, и он не хотел им пугать новичков.

А что в хаскеле непрагматичного?
Я хочу с помощью монады сделать await. Как?

Evgeniy
08.05.2017
15:16:41
@DarkByte2016 Слушай, мы тут не любим субъективную критику. :(

Friedrich
08.05.2017
15:16:45
С помощью computation expression сходу понятно, как. Реализуешь метод await, и всё.

А для монады нужно ещё что-то думать!

Вот когда _думать_ — это непрагматично.

(хотя и полезно, и хаскель хороший, я его не критикую, не подумайте)

Pig
08.05.2017
15:17:27
Afaik просто оборачиваешь все что нужно в Async и все

Google
Evgeniy
08.05.2017
15:17:55
@DarkByte2016 У Haskell нормальный синтаксис, его используют, в том числе и в больших компаниях.

Но это чат не про Haskell.

Все верно.

Friedrich
08.05.2017
15:18:17
Да, я уже начал скатываться в холивор. Сматываю удочки!

Friedrich
08.05.2017
15:19:13
Про прагматичность computation expressions и сравнение с монадами мне кто-то недавно показывал вот этот папер: http://tomasp.net/academic/papers/computation-zoo/ Предлагаю всем интересующимся ознакомиться, а потом продолжим разговор.

Pig
08.05.2017
15:19:20
@DarkByte2016 приходи посмотреть на живых хаскелистов)) https://gitter.im/ruHaskell/forall

Илья
08.05.2017
15:20:03
@DarkByte2016 У Haskell нормальный синтаксис, его используют, в том числе и в больших компаниях.
У хаскель просто чудовищный синтаксис и никто в мире не убедит меня в обратном. От одного взгляда на код на хаскеле в дрожь бросает. И да, его реально нигде не юзают. От слова совсем. Ни одной вакансии не найти в интернете по нему. Зачем учить язык по которому нельзя найти работу? Все равно любые языки без практики забываются за пару недель.

Evgeniy
08.05.2017
15:20:28
@DarkByte2016 Пожалуйста, не разжигай тут.

Мы твое мнение с первого раза поняли.

Friedrich
08.05.2017
15:20:58
Да. Господа, пожалуйста, обсуждение хаскелевакансий перенесите в другой чат.

Pig
08.05.2017
15:21:09
Да, давай один на один в лс если не зассал!

))

Летучая
08.05.2017
15:21:19
Оч жирно

Из монитора прям хлещет

Evgeniy
08.05.2017
15:21:33
@fvnever А еще на CE можно немонадические штуки делать. Как в Freya. :)

Страница 105 из 772