@Fsharp_chat

Страница 21 из 772
Vasily
30.03.2017
09:33:46
И бкз nullreference, pls

Nikolay
30.03.2017
09:34:24
В Go NRE может же быть

https://bugzilla.xamarin.com/show_bug.cgi?id=37273

Google
Nikolay
30.03.2017
19:04:33
let printUpdate = Option.bind (fun x -> printfn "%A" x.Text)

В чём косяк?

Ругается на "%A" x.Text Type mismatch. Expecting a 'a -> 'b option but given a 'a -> unit The type ''a option' does not match the type 'unit'

Vasily
30.03.2017
19:07:14
Логично

Roman
30.03.2017
19:08:04
блин, вот и пиши после этого не в студии

let printUpdate = Option.bind (fun x -> printfn "%A" x.Text)
замени на let printUpdate x = match x with | Some(x) -> printfn "%s" x.Text | _ -> ()

Nikolay
30.03.2017
19:17:09
Да, это работает

Roman
30.03.2017
19:17:36
Можно красивее. Но без студии не вспомню)

Igor
30.03.2017
19:49:57
Немного расплывчатый вопрос, но скажите хоть куда смотреть: А можно в F# передавать в функции неявные (implicit) параметры или как-то говорить что она исполняется в каком-то контексте?

Igor
30.03.2017
19:52:18
Ну типа implicit в Scala или this в extension-lambda в Kotlin (говорит о чем-то?)

Google
Roman
30.03.2017
19:52:34
let implicit func a = a+a

По моему валидно

Igor
30.03.2017
19:53:30
Вот чувак задает похожий вопрос https://fslang.uservoice.com/forums/245727-f-language/suggestions/5810569-add-support-for-implicit-parameters

Roman
30.03.2017
19:54:08
let implicit func a = a+a
Не. Там другой кейворд

Igor
30.03.2017
19:55:19
Roman
30.03.2017
19:55:29
точно

а нет

Igor
30.03.2017
19:56:04
Вопрос вроде поднимали уже, но напомните как в F# живут без type class?

Roman
30.03.2017
19:56:04
тут проскальзывало уже. Пиво выиграл кто-то)

легко)

а нет
точно inline

Igor
30.03.2017
19:56:50
легко)
Это понятно, в Java и С# тоже не жалуются. Но интересно как эмулируют, если очень хочется?

Roman
30.03.2017
19:57:38
let inline (»=) a = a + a;; val inline ( »= ) : a: ^a -> ^b when ^a : (static member ( + ) : ^a * ^a -> ^b) так не подходит?

Есть некий https://github.com/gusty/FSharpPlus

но он не добавляет type classes

http://cloudsharper.com давно ребята пишутся

Evgeniy
30.03.2017
20:15:03
@angmarr А что ты хочешь сделать?

Google
Evgeniy
30.03.2017
20:16:17
Полноценных тайпклассов не получить, но часть задач, где нужен просто ad hoc полиморфизм, можно решить через inline/SRTP.

Ну, как это делают в FSharpPlus.

Evgeniy
30.03.2017
20:17:12
Statically Resolved Type Parameters

https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/generics/statically-resolved-type-parameters

Roman
30.03.2017
20:17:26
Secure Real-time Transport Protocol

Evgeniy
30.03.2017
20:17:38
:)

Roman
30.03.2017
20:18:01
т.е. можно много чего сделать, правда

Evgeniy
30.03.2017
20:19:02
@angmarr @neftedollar Вот пост чувака, который FSharpPlus пилит. http://nut-cracker.azurewebsites.net/blog/2011/11/15/typeclasses-for-fsharp/

Может будет полезно.

Roman
30.03.2017
20:20:49
https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/generics/statically-resolved-type-parameters
а как ее правильно в констрейнтах использовать?

Nikolay
30.03.2017
20:30:33
А в F# код не раскидывается по папкам?

Igor
30.03.2017
20:38:20
@angmarr А что ты хочешь сделать?
Я хочу писать функции, которые исполняются в каком-то контексте (окружение). Сейчас контекст приходится явно передавать из функции в функцию, через параметр. Вот М.Одерский (автор Scala) говорит о похожей проблеме в компиляторе - https://youtu.be/iobC5yGRWoo?t=36m3s У него Context передается как параметр в 2641 функцию. У меня кода меньше, но повторение (/копипаста/бойлерплейт) надоело ?

Evgeniy
30.03.2017
20:40:33
@angmarr Ну, тогда классы и методы.

Igor
30.03.2017
20:42:00
@angmarr Ну, тогда классы и методы.
Это мне нужен будет класс Context с 100 методов. Да и если бы мне нужны были классы, я бы на C# остался.

Evgeniy
30.03.2017
20:42:27
@angmarr Классы -- это вполне идиоматичный F#.

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

https://eiriktsarpalis.wordpress.com/2017/03/20/why-oo-matters-in-f/

Roman
30.03.2017
20:43:01
Google
Nikolay
30.03.2017
20:43:38
Странно, не вижу в VS Add Folder

Evgeniy
30.03.2017
20:44:40
@angmarr Ну, и тебе нужен будет не один класс Context, а набор классов, параметризуемых контекстом.

Igor
30.03.2017
20:45:01
https://eiriktsarpalis.wordpress.com/2017/03/20/why-oo-matters-in-f/
Я бы сказал, в F# "OO matters" только потому что в нем нет type class, на да ладно.

Arseniy
30.03.2017
20:45:09
Это мне нужен будет класс Context с 100 методов. Да и если бы мне нужны были классы, я бы на C# остался.
а этот контекст пересоздается или просто протягивается через компилятор?

Arseniy
30.03.2017
20:49:35
как что меняет, если он не изменяем, то грубо говоря, можно было эти ф-ции сделать замыканиеми

или завернуть в какую-нибудь ридер-монаду

или как правильно пишут, можно сделать класс и в него нафигачить методов

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

Igor
30.03.2017
20:53:56
или завернуть в какую-нибудь ридер-монаду
Вот я тоже склоняюсь к риадер монаде

Arseniy
30.03.2017
20:55:19
с точки зрения системы типов F# ничего сильно интересного не может. тот же окалм мощнее. фишарп - это типо просто и практично

Igor
30.03.2017
20:56:01
может каконечно у меня блаб парадокс головного мозга, но такие проблемы надо решать реорганизацией кода, а не имплиситами
Не знаю что такое блал, но я пытаюсь логику кода выкрутить, что бы окружение нужно было только на топ-левеле, а не просачивалось в нижние функции, но пока не получается.

Arseniy
30.03.2017
20:57:55
Грэм является автором так называемого «Парадокса Блаба» («Blub paradox»), ссылки на который нередко встречаются на тематических ресурсах, посвящённых обсуждению новых и ограниченно популярных языков и механизмов программирования. «Парадокс Блаба» описан в очерке «Побеждая посредственность». Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. Таким образом, ограниченность Блаба сама по себе не может стать стимулом для изучения более мощного языка, так как для осознания этой ограниченности необходимо уже знать такой язык. Этим Грэм объясняет то, что программисты обычно не желают изучать более эффективные инструменты программирования, чем те, которыми они уже владеют (в частности, непопулярность Лиспа).

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

Arseniy
30.03.2017
21:13:34
лел. мысли синхронны https://twitter.com/backendsecret/status/847557264802185217

Roman
31.03.2017
01:24:36
У нас в EPAM в СПб бывают проекты на F#.

Я могу у коллеги узнать. Знаю только, что для международной фарма компании. Целенаправленно не набираем с F#. Ребята, которые писали на F#, были web full-stack с опытом на F#. А тут проект такой зашёл, где было актуально.

Evgeniy
31.03.2017
04:53:13
@Dolfik Какую версию VS используешь?

Google
Evgeniy
31.03.2017
04:57:45
@Dolfik https://github.com/Microsoft/visualfsharp/pull/2692

В 2017 над этим еще работают.

Evgeniy
31.03.2017
05:16:52
@Dolfik VF# Power Tools установлен?

Nikolay
31.03.2017
05:18:24
Вообще вроде устанавливал, но чёт не появилось добавление папок, хотя могу ошибаться, надо ещё раз посмотреть

Для 2017 я так понял пока вообще нет возможности создавать папки, ибо эти тулзы только в 2015 работают

Evgeniy
31.03.2017
05:41:45
@Dolfik В 2017 все сложно. Там переезжают на roslyn-project-system.

Но со временем поддержка F# там будет лучше, чем в 2015+VFPowerTools.

F# сообщество опять штормит в твиттере. :)

Vasily
31.03.2017
07:43:51
Чо там?

Evgeniy
31.03.2017
08:10:26
Непонимание сути OSS как обычно. :)

Vasily
31.03.2017
08:10:52
Бывает,чо

Arseniy
31.03.2017
08:37:20
@gsomix линки на штормящее сообщеество

Evgeniy
31.03.2017
10:17:47
https://twitter.com/alfonsogcnunez/status/847405212755124224

Интересно, почему F# Foundation в GSoC не участвуют?

Надо в слаке спросить как-нибудь.

Окей. У FSF есть планы по участию в GSoC.

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