@Fsharp_chat

Страница 242 из 772
Vasily
24.07.2017
07:29:11
Проблема строковых экспрешнов в том, что они упадут в рантайме

Evgeniy
24.07.2017
07:29:59
@Dolfik То есть у тебя может быть получится сделать интерполяцию примитивных типов в запрос, но не кусков запросов. И уж тем более без compile-time проверок.

Вся беда в том, что printf-like механизм в F# не расширяемый.

Как, например, строковая интерполяция в Scala.

Google
Nikolay
24.07.2017
07:31:49
Вся беда в том, что printf-like механизм в F# не расширяемый.
Т.е. нельзя сделать замену так: select * from table where id = %i select * from table where id = @p1 ?

Friedrich
24.07.2017
07:31:49
Или в C# :(

Nikolay
24.07.2017
07:34:53
Т.е. нельзя сделать замену так: select * from table where id = %i select * from table where id = @p1 ?
Но по той линке, что ты кинул есть такой же пример)

Кстати спасибо

Evgeniy
24.07.2017
07:36:12
Но по той линке, что ты кинул есть такой же пример)
Я про другое, сшивать запросы тебе все равно придется через строки.

Что прям фу-фу-фу.

Nikolay
24.07.2017
07:36:55
А, ты имеешь ввиду писать Sql прямо в коде, это фигово?

Ну да

Evgeniy
24.07.2017
07:37:01
Нет.

Писать SQL в коде — это офигенно!

@Dolfik Как ты будешь делать составные запросы?

Vasily
24.07.2017
07:40:04
Не ту проблему решаете, походу

Evgeniy
24.07.2017
07:40:44
Не ту проблему решаете, походу
Просто она другими средствами в F# решается.

Google
Nikolay
24.07.2017
07:41:04
@Dolfik Как ты будешь делать составные запросы?
Что-то не пойму, что подразумевается под составным запросом

Типа select * from a select * from b; ?

Evgeniy
24.07.2017
07:42:44
Что-то не пойму, что подразумевается под составным запросом
http://fsprojects.github.io/SQLProvider/core/composable.html#Generate-composable-queries-from-quotations

Вот пример, когда мы собираем запрос в рантайме. По условию выбираем предикат для where и подставляем его в запрос.

И выше примеры когда части запроса просто в отдельных переменных лежат.

Nikolay
24.07.2017
07:45:16
Ну разве что повторять запрос

Хз ещё как

Evgeniy
24.07.2017
07:46:18
Вот это большая проблема. С printf-like функцией все хорошо, когда запросы простые.

https://github.com/Microsoft/visualfsharp/pull/921

Закрыли. .__.

Nikolay
24.07.2017
07:53:10
Vasily
24.07.2017
08:09:19
Закрыли. .__.
На 4.2 перенесли возможно, как я понял

Anton
24.07.2017
10:13:28
Воообщем. Создал пару тикетов по asp.net, думаю, кому тоже интересно будет. На F# это же тоже вроде распростроянется. https://youtrack.jetbrains.com/issue/RIDER-8088 https://youtrack.jetbrains.com/issue/RIDER-8087

ect"==typeof module.exp
24.07.2017
11:38:04
Update 3 preview знает
Вот за эту подсказку спасибо!

Evgeniy
24.07.2017
11:39:13
Вот за эту подсказку спасибо!
Проблему с vscode не решил?

ect"==typeof module.exp
24.07.2017
11:39:31
Примерно понял причину, но не решил

там ionide-fsharp конфликтует с новым MSBuild идущим в комплекте к VS2017 в итоге какая-то дополнительная утилита улетает с переполнением стэка, а какая-то из конфликтующих DotNet библиотек непонятно что делает вызывая BSOD

ect"==typeof module.exp
24.07.2017
11:44:05
уже был

без BSOD правда, но уверен что проблема смежная

Google
Evgeniy
24.07.2017
11:44:35
Ну, ты там тыкни разок, вдруг забыли.

ect"==typeof module.exp
24.07.2017
11:44:47
https://github.com/fsharp/FSharp.Compiler.Service/issues/672

Roman
24.07.2017
11:45:13
я че-то ничего хорошего еще не слышал про 2017 студию. Вечно у кого-то что-то не ладится, рушится и не работает.

ect"==typeof module.exp
24.07.2017
11:45:47
ладно бы оно внутри самой студии рушилось, оно всё вокруг рушит

казалось бы не использую ни IDE от неё, ни родной её Фрэймворк, а ведь всё-равно умудряется.

Evgeniy
24.07.2017
11:47:31
Все это кажется мне довольно странным.

ect"==typeof module.exp
24.07.2017
11:57:49
Ещё бонусом иногда мелькание всего экрана при запущеном VScode / Atom при установленом Ionide

Anton
24.07.2017
13:08:58
В Rider завезут Paket! Уря! https://youtrack.jetbrains.com/issue/RIDER-552

А в целом, почитал всё что завезут в Rider 2017.2 для F# и был очень приятно удивлён.

Igor
24.07.2017
13:10:41
Акиньшин еще прошлой осенью обешал что завезут, ну наконец то (только я не понимаю зачем он на core clr)

Nikolay
24.07.2017
13:14:30
В Rider завезут Paket! Уря! https://youtrack.jetbrains.com/issue/RIDER-552
Пока coreclr не завезли, не вижу смысла особо ставить

Кстати, только у меня ionide после последнего обновления стал хуже работать?

Хотя может он и работал так, но чёт прям много косяков вылазит

Из тех, что щас вспомнил: 1. Не всегда видит новые добавленные пакеты через dotnet add package, фиксится перезапуском 2. Отвалился fsi по Alt+Enter

Anton
24.07.2017
13:18:32
Хм, пишу в F# в райдере с появления там онного. Всё нравится.

видеть там Paket очень рад.

Nikolay
24.07.2017
13:18:52
Evgeniy
24.07.2017
13:22:20
Неа
Чего же ты ждёшь?!

Google
Nikolay
24.07.2017
13:23:53
Чего же ты ждёшь?!
У меня с FSI уже такое было, потом само пофиксилось

Теперь опять сломалось

А с dotnet add хз, оно не всегда воспроизводится, я пока закономерность не нашёл

Aminion
24.07.2017
17:37:47
Так, я что, не могу запарсить число в функциональном стиле, не плодя мьютейбл?

Klei
24.07.2017
17:42:05
Так, я что, не могу запарсить число в функциональном стиле, не плодя мьютейбл?
Если речь про TryParse, то out параметры в F# можно получить в виде кортежа.

Aminion
24.07.2017
17:43:17
М, хоть так, не пойму почему не запилили обертки в опшн

Evgeniy
24.07.2017
17:44:04
М, хоть так, не пойму почему не запилили обертки в опшн
Сложно определить, в какой момент нужно остановиться при составлении стандартной библиотеки.

Например, недавно решили, что не хватает функций для работы со строками. https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1033-extend-string-module.md

Можно распространять вместе с видео. :) https://www.youtube.com/watch?v=KPa8Yw_Navk

Get Started with F# as a C# developer https://blogs.msdn.microsoft.com/dotnet/2017/07/24/get-started-with-f-as-a-c-developer/

Летучая
24.07.2017
18:14:00
То-то в каждом проекте появляется папочка extensions с модулем tools ? (ну или типа того)

Vasily
25.07.2017
07:36:49
split: Should this function take a seq or seq, or both?

Anton
25.07.2017
12:14:59
@Worldbeater ну, у нас в C# так точно подобное появляется =)

А в F# что ли тоже есть экстеншены как в C# ?

Anton
25.07.2017
12:15:56
о как

Vasily
25.07.2017
12:37:02
По факту все методы типа Seq.map являются экстеншнами

Летучая
25.07.2017
12:55:55
По факту все методы типа Seq.map являются экстеншнами
а модули — статик классами а импорт модулей — юзинг статик ?

Pavel
25.07.2017
13:00:08
По факту все методы типа Seq.map являются экстеншнами
Почему? это же просто модуль с функциями а не экстеншен типа

Vasily
25.07.2017
13:00:37
по факту экстеншн является синтаксическим сахаром

Google
Pavel
25.07.2017
13:03:02
это да, тогда скорее правильнее будет наоброрт. Не функции модуля являются экстеншенами, а экстеншены являются функциями модуля...

Vasily
25.07.2017
13:03:36
Как называть, вообще не важно

Pavel
25.07.2017
13:04:19
ну синтаксис то разный :)

Vasily
25.07.2017
13:04:25
Главное, чтобы не было такого - жопа есть, а слова нет

Friedrich
25.07.2017
13:40:52
https://github.com/Microsoft/visualfsharp/pull/3365#pullrequestreview-52050222 Посаны, мой PR апрувнул Сайм ❤️

Evgeniy
25.07.2017
17:28:37
https://github.com/NuGet/NuGetGallery/pull/4437

Летучая
25.07.2017
18:00:06
Зачем нужен Paket?

Evgeniy
25.07.2017
18:01:08
Зачем нужен Paket?
https://fsprojects.github.io/Paket/faq.html

Первый вопрос. :)

Летучая
25.07.2017
18:04:15
Имхо, недостатки нугета — это стимул фокусироваться на доработке нугета, а не на создании еще одного пакетного менеджера...

Evgeniy
25.07.2017
18:04:29
tl;dr lock-файл, кеширование, solution-wide пакеты

Oleg
25.07.2017
18:05:40
это как yarn vs npm. Проще сделать правильно, чем пытаться сделать конфетку из непонятного

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

Летучая
25.07.2017
18:09:35
нугет имеет врожденные недостатки, как-то заточенность под решения из одного проекта
В чём это выражается? На .NETCore/.NETStandard зависимости всех проектов независимы друг от друга. packages.config это немножко легаси же.

Oleg
25.07.2017
18:11:00
В Неткоре проектах пакет не пробовал, не скажу. Чем в обычных проектах отличается рассказать? ?

Летучая
25.07.2017
18:11:56
В Неткоре проектах пакет не пробовал, не скажу. Чем в обычных проектах отличается рассказать? ?
Давай. Помню много боли с транзитивными зависимостями при попытках скрестить NETStandard с тестами на F# .NETFramework. Может быть, было бы проще, узнай я раньше о Paket :)

Oleg
25.07.2017
18:14:31
Давай. Помню много боли с транзитивными зависимостями при попытках скрестить NETStandard с тестами на F# .NETFramework. Может быть, было бы проще, узнай я раньше о Paket :)
Да, именно они - транзитивные зависимости. Пакет все зависимости всех проектов анализирует вместе, поэтому все проекты будут согласованно подключать, скажем, newtonsoft.json 8.0, а не так выводится из референсов каждого проекта по-отдельности

упомянутый лок-файл опять же, его надо добавлять в VCS, тогда результат "вытягивания сборок" не будет зависеть от времени, порядка проектов и пр.

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