
Nikolay
13.10.2017
20:05:47
https://github.com/Dolfik1/translations/blob/master/fsharpforfunandprofit/troubleshooting-fsharp.md
У меня вот висит
20 Aug
Причём переведено уже больше половины

Google

Anna
13.10.2017
20:08:54
о, это что-то титаническое
Мне, кстати, походу надо совершить одно признание. Я в 21 веке почти не пользуюсь гитхабом. И тем более для текста, а не кода. Гуглдоки наше всё ?

Artemy
13.10.2017
20:12:20
Ну там тоже версии есть. Так что для обычного текста вполне себе достаточно, по-моему.

Evgeniy
13.10.2017
20:55:38
Кому поливариадик функций?
https://gist.github.com/gusty/70e5af737f2f6aed2bc0303a2e17c7d7
Мне очень нравится этот хак!

Andrew
13.10.2017
21:01:13
выглядит довольно круто, но вкурить сложно

Evgeniy
13.10.2017
21:02:52
Да, это выглядит немного сложнее его прошлого сниппета про polyvariadic fold.
Который, кстати, перестал работать после фиксов SRTP.
https://gist.github.com/gusty/b6fac370bff36a665d75

Roman
13.10.2017
21:36:41

Алекс
13.10.2017
22:37:11

Klei
14.10.2017
03:07:23
У меня внезапно на одной из машин с VS 15.4 отвалился F#. Пропала вся подсветка синтаксиса за исключением ключевых свойств. Рефакторинг и т.п. вообще не работает. Проблема пока решается удалением Nightly. Кто-нибудь сталкивался?

Evgeniy
14.10.2017
05:01:12

Google

Klei
14.10.2017
05:17:22

Evgeniy
14.10.2017
05:25:44
https://github.com/Microsoft/visualfsharp/issues/3628
Интероп — это сложно. .__.
https://github.com/Microsoft/visualfsharp/pull/3729#issuecomment-336591865

Sergey
14.10.2017
06:53:10
Как насчёт visual studio for Mac?..
есть оно у меня, но как-то сильно не пользовался - как привыл наверно в решарперовскому тестранеру и вообще интуитивно все как-то в райдере...

Vlad
14.10.2017
07:37:39

Fill
14.10.2017
07:42:33
.
было у кого нибудь?

Sergey
14.10.2017
07:46:20

Max
14.10.2017
07:50:54
поставь расширение omnisharp

Fill
14.10.2017
07:51:40
Окей, сечас попробую)

Sergey
14.10.2017
08:29:30
свежачек https://twitter.com/sergey_tihon/status/919116099714678784 =)

Evgeniy
14.10.2017
08:29:52
Юху!
@sergey_tihon Спасибо!

Andrew
14.10.2017
10:23:43
захотел я вчера в C# по-функциональному покодить, покодил, вспомнил про стектрейсы - откатил

Roman
14.10.2017
10:24:26

Andrew
14.10.2017
10:24:38
как в f# выглядят стектрейсы, когда что-то посыпалось внутри анонимной функции завернутой в 10 уровней других анонимных функций?

Friedrich
14.10.2017
10:32:25

Google

Friedrich
14.10.2017
10:34:01
За стектрейсы по большому счёту отвечает не компилятор, а рантайм. Во что компилируется F#-код в дебажном и релизном режиме, можно посмотреть на sharplab.io. Например, я вот такой пример собрал: https://sharplab.io/#v2:DYLgZgzgNAJiDUAfA9gBwKYDsAEBlAnhAC7oC2AsAFBH4bYDCAFAJTYC8V2X2pZARugBO2IgAsAlhAB0AWRbtO3JcHRFsYZMnbqArjgAe2ALQA+RUovYVavgENhbXTnmnzl94zB7sO4yZ+sjDK2YlIAMsgA5tj6zG7u2HaCLPEJ3KlcGloAjFIADEA==
Стектрейс для случая, если Math.Log упадёт, будет выглядет соответствующе непонятно. Но строки будут правильные (из PDB).
Хотя у меня чото не вышло запутать компилятор — он, собака, берёт и инлайнит все мои хитрые вложенные лямбды :)
И это очень круто. Компилятор C# не умеет делать таких оптимизаций, а наш умеет.

Evgeniy
14.10.2017
10:39:45

Friedrich
14.10.2017
10:40:25
В C# стектрейсы из стейт-машины (await или yield) тоже выглядят плохо, но обычно по ним можно найти исходную точку вызова.

Evgeniy
14.10.2017
10:42:16

Friedrich
14.10.2017
10:42:47
> the upcoming F# 4.1 will be providing this functionality

Evgeniy
14.10.2017
10:45:15

Friedrich
14.10.2017
10:45:39
Ага, это как раз фичи для реализации стектрейсов.
В стандартную либу так и не завезли чота.

Evgeniy
14.10.2017
10:48:58

Friedrich
14.10.2017
10:49:23
Отладка же, вроде, худо-бедно работает?

Evgeniy
14.10.2017
10:52:05
https://github.com/Microsoft/visualfsharp/issues/2741

Friedrich
14.10.2017
10:55:52

Anna
14.10.2017
15:46:22
Здрасьте, это снова я, гитхаб-валенок. В репозитории для переводов написано, что надо его форкнуть. Но зачем?

Pauline
14.10.2017
15:48:17
чтобы потом закинуть пул-реквест наверное с переводом

Кирилл
14.10.2017
15:48:46
в своем репозитории можешь пушить сколько нужно
в свою ветку

Google

Кирилл
14.10.2017
15:49:04
в апстрим - только через ПР вроде бы

Anna
14.10.2017
15:50:25
аа. То есть теоретически можно доделать перевод целиком и сразу сделать PR?

Кирилл
14.10.2017
15:51:14
можно и так
просто у тебя например нет прав заливать в тот репозиторий главный, ты можешь себе его форкнуть и развлекаться как тебе угодно
а потом если хочешь свои изменения залить в главный репозиторий - через ПР можешь это сделать

Pauline
14.10.2017
15:52:47

Anna
14.10.2017
15:54:36
Ясненько, спасибо!

Evgeniy
14.10.2017
18:26:14
@AnutaU Это у тебя TaPL на аватарке? :)

Anna
14.10.2017
18:27:29

Mikhail
15.10.2017
06:53:21
Долго обычно ждать на хабре приглашения после отправки перевода в песочницу?

Vladimir
15.10.2017
09:50:24
А кто-нибудь на фшарпе работает с EF Code first или это не кошерно?

Friedrich
15.10.2017
09:52:06

Vladimir
15.10.2017
09:52:37
весь же основной смысл EF в миграциях

Friedrich
15.10.2017
09:52:56
Миграции я в отдельную сешорп-сборку сваливал, когда было нужно.
Модельки были на F#, а миграции на C#.
EF Core это переваривал во времена первых превьюшек .NET Core 1.0. Сейчас не знаю, давно не трогал EF из F#. Думаю, что скорее всего и сейчас заведётся.

Vladimir
15.10.2017
09:54:16
ясно, спасибо)

Friedrich
15.10.2017
09:54:31
Можно какой-нибудь автоконвертер фигануть, который бы и миграции перекачивал в F#.

Vladimir
15.10.2017
09:55:13
а есть уже из CIL конвертер в F#?

Andrew
15.10.2017
10:35:01

Google

Vladimir
15.10.2017
10:35:04
получается конечно жестко =)
services.AddDbContext<MyRepository>(Action<DbContextOptionsBuilder>(fun options ->
options.UseNpgsql("sdfsdf", Action<Infrastructure.NpgsqlDbContextOptionsBuilder>(fun options ->
options.EnableRetryOnFailure() |> ignore)) |> ignore)) |> ignore

Andrew
15.10.2017
10:35:41
Но сильно сомневаюсь что они могут генерить чистый идиоматичный код

Vladimir
15.10.2017
10:38:50

Friedrich
15.10.2017
10:47:52
В основном там просто вызовы фиксированного набора методов, никакой хитрости нету.
+ ресурсные файлы
@olegzee привет, ты же смотрел на Akkling под .NET Standard? Я вижу там твой PR :)

Andrew
15.10.2017
11:04:42
Ну да, если только для миграций то несложно

Vladimir
15.10.2017
14:17:35
@fvnever a fluent api использовал? я что-то уже полчаса туплю, не понимаю как HasKey через фшарп сделать

Mikhail
15.10.2017
14:20:47
Привет всем! Я что-то подвис немного на самом простом. Подскажите как объявить массив из 360 объектов класса CCPoint?

Vladimir
15.10.2017
14:21:44
Array.zeroCreate<CCPoint> 360

Mikhail
15.10.2017
14:24:00
Спасибо!!! А если например таким образов - проканает же? let array3 = [| for i in 1 .. 360 -> CCPoint(i,i) |]

Vladimir
15.10.2017
14:24:51
да, должно

Mikhail
15.10.2017
14:25:29
Спасибо) Примного благодарен)

Vladimir
15.10.2017
14:25:39
не за что)

Oleg
15.10.2017
14:43:14

Vladimir
15.10.2017
17:01:15
Разобрался наконец с fluent validation, на фшарпе просто страх =)
let expr = <@ Func<MyModel, obj>(fun m -> box m.Id) @> |> QuotationToLambdaExpression
modelBuilder.Entity<MyModel>().HasKey(expr) |> ignore

Evgeniy
15.10.2017
17:05:39

Friedrich
15.10.2017
17:17:46
Можно написать экстеншен, который будет более удобно это всё делать.