
Igor
22.07.2017
11:21:25

Adam
22.07.2017
11:22:29

Igor
22.07.2017
11:24:08

Adam
22.07.2017
11:24:36

Google

Adam
22.07.2017
11:30:50
Есть поновее - второе издание (F# 3.0), в оригинале

Friedrich
22.07.2017
11:52:59
https://github.com/ForNeVeR/strafesharp/blob/65e4241281d771324d1c86081a87ea2c001ca495/StrafeSharp/Platform.Windows/SpDeviceInterfaceDetailData.fs — пишу и рыдаю, чуваки, рыдаю и пишу ?

Vlad
22.07.2017
11:54:34
Маршал ансейф на службе?)

Friedrich
22.07.2017
11:58:09
Для того, чтобы не мучиться с отсутствием оператора стрелки, пришлось в уме вычислять смещение и хардкодить его :(

Nikolay
22.07.2017
11:59:41

Friedrich
22.07.2017
12:00:03
Кто знает, я пока на практике не тестировал. Наверняка рухнет.
Всю эту платформенную требуху даже тестами как следует не покроешь.

Evgeniy
22.07.2017
12:06:18

Roman
22.07.2017
12:14:58
А что кстати кто порекомендует почитать по фшарпу? А то я не особо много литературы нашел.

Evgeniy
22.07.2017
12:15:25

Roman
22.07.2017
12:15:46
да, спс, этот сайт я и так читаю периодически)

Google

Evgeniy
22.07.2017
12:16:32
Больше ничего не могу порекомендовать.

Roman
22.07.2017
12:17:33
спасибос

Adam
22.07.2017
12:44:58
Цитата из книги по F#. Не совсем понятно, что тут имеется в виду.
«В языке C# существует возможность реализовать интерфейс
лишь частично и предоставить производным классам недостающую реализацию. В языке F# такая возможность отсутствует.
Если тип объявляет, что он реализует интерфейс, он должен реализовать все методы и свойства»

Roman
22.07.2017
13:04:09

Nikolay
22.07.2017
13:22:44
А как в F# сделать типа такого: (await SomeFunc()).SomeValue
Можно получается сделать так:
let! x = SomeFunc()
x.SomeValue
Но хочется именно одним выражением

Летучая
22.07.2017
13:24:21
Возможно меня осудят, но
let await (task: Task<'a>) =
async {
let! result = task |> Async.AwaitTask
return result
} |> Async.RunSynchronously
SomeFunc()
|> await
|> fun res -> res.SomeValue
или
(await <| SomeFunc()).SomeValue

Nikolay
22.07.2017
13:25:12
Хмм
Можно вроде так:
(do! SomeFunc()).SomeValue

Летучая
22.07.2017
13:30:48
Кстати, что можете посоветовать испоьзовать для мокинка интерфейсов через F#? Foq не подходит, нужно что-то для кора/нетстандарда.

Friedrich
22.07.2017
14:05:27
Ух, а я баг в конпеляторе нашёл, кажется.

Adam
22.07.2017
14:07:12

Friedrich
22.07.2017
14:07:31
Ни в коем случае. Если кому-то такое написание не нравится, прошу прощения.
Ага, разобрался. Я заставил компилятор создать Tuple из ref-типа, и это считается невалидным.
https://github.com/Microsoft/visualfsharp/issues/3362 — вот и багуля.

Adam
22.07.2017
14:26:06
Можно ли ещё короче записать:
let fst3 tup =
let x, _, _ = tup
x

Google

Evgeniy
22.07.2017
14:31:27

Adam
22.07.2017
14:31:49

Nikolay
22.07.2017
14:51:03
А в SqlProvider'e можно сохранять взаимосвязанные записи?
Хреново наверное объяснил
Например, User связан с UserRole, и мне нужно создать сразу User и UserRole, в EF я бы сделал так:
var user = new User
{
UserRole = new UserRole()
};

Adam
22.07.2017
14:55:27

Nikolay
22.07.2017
14:57:58
Там есть такое проперти: UserRole by Id

Adam
22.07.2017
14:59:40

Nikolay
22.07.2017
15:00:02
Щас посмотрю, прокатит ли так
Но что-то мне название не очень нравится)
Вопрос был именно по SqlProvider'у, по его специфике работы

Evgeniy
22.07.2017
15:06:23

Nikolay
22.07.2017
15:06:44
EF сам разруливает такие случаи

Evgeniy
22.07.2017
15:06:59

Nikolay
22.07.2017
15:07:02
Интересно было умеет ли такое SqlProvider

Evgeniy
23.07.2017
05:13:09
Привет! о/

Donald
23.07.2017
05:13:28

Friedrich
23.07.2017
08:03:07
Народ, а кто-нибудь у себя собирал visualfsharp? У меня всё собралось, но один тест валится :(

Google

Friedrich
23.07.2017
08:04:01
Хм, а пойду-ка я им баг оформлю. Похоже, что там требуется английское сообщение об ошибке, а у меня русское выводится (но правильное).
Завёл багу: https://github.com/Microsoft/visualfsharp/issues/3363

Nikolay
23.07.2017
09:01:35
А как инициализировать запись с генериком?
Типа:
type SomeType<'a> =
{
SomeFiled: int
}
let x = { SomeField = 1 }

Friedrich
23.07.2017
09:09:19
Сходу в голову приходит написать let x : SomeType<int> = { SomeField = 1 }
Но ты можешь и просто забить и полагаться на вывод типов.
Если у тебя дальше по коду требуется, чтобы x имел тип SomeType<int>, то оно и в твоём варианте всё само выведет как надо.

Nikolay
23.07.2017
09:28:37
Типа так получается:
let query queryText parameters = { QueryText = queryText; Parameters = parameters; }: SqlQuery<'a>
Вот так лучше

Friedrich
23.07.2017
14:40:59
Смотрите, я пофиксил ворнинг ,3
https://github.com/Microsoft/visualfsharp/pull/3365

Evgeniy
23.07.2017
14:49:10
> Lena Hall
> If you are maintaining #fsharp projects, mark items that are good for new contributors work on as 'up-for-grabs':
http://up-for-grabs.net/#/tags/fsharp
F# Weekly #30, 2017 - Happy 2nd-anniversary Jet
https://sergeytihon.com/2017/07/23/f-weekly-30-2017-happy-2nd-anniversary-jet/

ect"==typeof module.exp
23.07.2017
16:05:40
Что-то у меня странный полёт с F# на Win10. VSCode с установленным Ionide устраивает BSOD, У Атома постоянно падает FSharp.Compiler.Service.ProjectCrackerTool.exe
Что опроисходит вообще?
Проектный файл созданных через dotnet core MS Visual Studio Community 2017 отказывается открывать.

Evgeniy
23.07.2017
16:13:39

ect"==typeof module.exp
23.07.2017
16:14:21
Но он честно пытается открыть. Сейчас проверю знает ли MSVS17 про dotnetcore

Летучая
23.07.2017
16:15:37
и даже собирает
но подсветка синтаксиса неадекватная вообще

Google

Летучая
23.07.2017
16:16:01
пакеты не видит коровские
обещали допилить к выходу из превью

ect"==typeof module.exp
23.07.2017
16:16:50
Это какой-то провал, на Win разрабатывать на F# вне MSVS невозможно, а под маком работать невозможно

Летучая
23.07.2017
16:17:12
хз кодирую на f# в вскоде из-под виндовс
всё норм
переустанови макос ?

ect"==typeof module.exp
23.07.2017
16:19:34
переустановка макос моему мау 2011 года - как мёртвому припарки, нормальная клавиатура у него не отрастёт )

Nikolay
23.07.2017
16:20:11
@fvnever а ты же там что-то писал связанное с sql?
Провайдер через файлы или что-то такое

Evgeniy
23.07.2017
16:21:40

ect"==typeof module.exp
23.07.2017
16:24:19
причём совсем непонятно в чём дело, установка win10 - свежая
Грешу на Ionide-Fsharp.

Oleg
23.07.2017
16:52:44

ect"==typeof module.exp
23.07.2017
16:56:20

Igor
23.07.2017
16:58:41