
Ed
15.07.2017
07:30:59
например List.init 5 id |> List.??? (-) = [1; 1; 1; 1]

Alexey
15.07.2017
07:35:14
Seq.pairwise |> Seq.map (fun (x,y) -> x - y)

Ed
15.07.2017
07:37:01
о, спасибо
а оно сдвигается на одну ячейку или на две?

Google

Alexey
15.07.2017
07:37:57
Одну
Для [1;2;3;...] pairwise даст [(1,2),(2,3),...]

Ed
15.07.2017
07:39:31
ааа
понял

Alexey
15.07.2017
07:39:58
Ещё есть List.map2
Но ему два листа нужно передать

Ed
15.07.2017
07:40:25
не, у меня один

Alexey
15.07.2017
07:40:42
Ну ты один можешь сам сдвинуть
А одни передать как есть

Ed
15.07.2017
07:43:19
наверное первый вариант проще
List.init 5 id |> List.pairwise |> List.map (fun (x,y) -> y - x)
спасибо

Alexey
15.07.2017
07:45:33
?

Google

Aminion
15.07.2017
08:22:35
Не пойму, нет другой функции split для строк, кроме нетовской в систем стринг?

Friedrich
15.07.2017
08:50:33
А какую ещё надо?

Andrew
15.07.2017
09:14:58
Всем привет. Уперся в дурацкую проблему. Имею VSCode, директорию с проектом на F#. В ней paket.references и fsproj. Файл проекта я создал вручную и там сейчас нет ссылок на библиотеки. Как их добавить? Пробую > F# Add Reference в VSCode - не работает. forge reference add ... тоже. Есть ли какие идеи?

Friedrich
15.07.2017
09:15:25
paket install пробовал?

Andrew
15.07.2017
09:15:30
ща попробую
Нет.. Файл проекта остался без изменений

Vasily
15.07.2017
09:16:15
Надо файл проекта в вскод открыть

Andrew
15.07.2017
09:30:55
В общем пока понял, что добавление ссылки в проект происходит при выполнении > paket: Add nuget package (to current project). И в файл проекта, который был создан через > F# new project ссылки добавляются. А в файл проекта, который был мною взят из https://github.com/ionide/DebugSample/blob/master/src/CLR/CLR.fsproj ссылки не добавляются.

Roman
15.07.2017
09:31:48
Всмвсле нового стандарта

Andrew
15.07.2017
09:33:29
Есть какие-нибудь у VSCode средства или другие утилиты, которые умели бы с ним работать? добавлять ссылки на библиотеки, в частности? dotnet CLI умеет?
ну т.е. в ручную писать xml (пусть даже копипастить) не хочется. Как с этим общественность справляется? :)
@gsomix Ты под свои проекты не пробовал отладку приспособить? Каким образом ты решил проблему добавления ссылок на библиотеки?

Летучая
15.07.2017
09:52:51
Хорошие новости, господа! Дождались поддержку F# на .NETCore в студии. Создать новый проект пока не позволяет, однако существующие вполне позволяет менеджить, линкать и собирать. Божественно.
Версия 15.3 preview так может.
Но что-то FSharp Power Tools не видят соседние проекты, на которые ссылается F#-проект. (не может open проектнейм)

Roman
15.07.2017
10:21:31
Не так давно я слышал, что .net core ещё жутко сырой и нормально на нём можно делать только мелкие проекты. Кто-нибудь что-нибудь более конкретное может сказать на этот счёт? Мелкие проекты я на убунте позапускал, с ними все ок.

Roman
15.07.2017
10:46:23

Igor
15.07.2017
10:46:54

Roman
15.07.2017
10:48:56
Ну как-то от c# я устал и хочу чего-то нового. @nevoroman А поддержка f#, видимо, отстает?

Google

Pawel
15.07.2017
10:53:29

Roman
15.07.2017
11:12:19

Roman
15.07.2017
11:31:33
Всякая биоинформатика, висело несколько сервисов на ASP.NET Core. И все работало отлично, с жуткими костылями как-то не столкнулся.

Pavel
15.07.2017
12:18:19
https://fsprojects.github.io/Paket/paket-and-dotnet-cli.html

Aminion
15.07.2017
15:17:21
Отдельную, что бы карировать можно было
Блин, я о функции Split у строки говорю

Igor
15.07.2017
15:26:49

Friedrich
16.07.2017
04:27:29

Ed
16.07.2017
04:33:57

Friedrich
16.07.2017
04:35:48
А какая там ошибка?

Ed
16.07.2017
04:36:57
Type mismatch. Expecting a
'unit -> int'
but given a
'unit -> string'
The type 'int' does not match the type 'string'
val func2 : unit -> string
Full name: Fetch.func2

Friedrich
16.07.2017
04:37:23
А попробуй мб объявить throttle тоже как inline?

Ed
16.07.2017
04:37:38
параметры нужны тогда

Friedrich
16.07.2017
04:38:24
Тут у тебя не "инлайн не работает", а у throttle выбираются параметры по первому вызову ('a ≡ int), и второй не хочет из-за этого работать.

Ed
16.07.2017
04:39:12
а нельзя это как-то заворкэраундить?

Friedrich
16.07.2017
04:41:36
Заворкэраундил так:
let inline run () =
let inline throttle f = start () f
let r1 = throttle func1
let r2 = throttle func2
r1, r2
Понятно, что хочется point-free, но с инлайнами так просто не получится :(

Ed
16.07.2017
04:44:09
понятно :(

Летучая
16.07.2017
12:05:57
Господа. Из кода на C# приходит неизвестный генерик-тип, который иногда может быть Null. Как на F# проверить, не бред ли пришёл, а нормальное значение?

Google

Летучая
16.07.2017
12:06:10
Если делать через генерик Method<'a when 'a : null>, то не совпадает сигнатура с интерфейсом, который заставляет это реализовывать.

Friedrich
16.07.2017
12:07:43
А что же написано в сигнатуре?

Летучая
16.07.2017
12:09:12
https://docs.microsoft.com/en-us/aspnet/core/api/microsoft.extensions.logging.ilogger
void Log<TState>(
LogLevel logLevel,
EventId eventId,
TState state,
Exception exception,
Func<TState, Exception, string> formatter)

Friedrich
16.07.2017
12:10:03
Вроде, там вообще никаких констрейнтов не написано.
А. Ну, это нормально!
У тебя и в C# бы такой код не заработал.
У тебя два выхода:
1) сравнивать с Unchecked.defaultOf<'a>
2) боксить и сравнивать с null

Летучая
16.07.2017
12:19:29

Friedrich
16.07.2017
12:21:23
Object.Equals?

Летучая
16.07.2017
12:22:00
О! Спасибо! Не догадался.

Friedrich
16.07.2017
12:22:25
Собственно, это решает проблему с боксингом: боксить всё равно придётся :)

Igor
16.07.2017
12:30:06
Чувак, TS на тебя плохо влияет, матчить строку это неправильный путь

Friedrich
16.07.2017
12:31:17
Но если там интерфейс такой, что уровень передаётся строкой — что ещё ты будешь делать?

Igor
16.07.2017
12:33:04
Уеб### автора интерфейса (но этого не будет, тк я не использую либы с таким дизайном)

Летучая
16.07.2017
12:33:43

Igor
16.07.2017
12:34:11
?

Google

Friedrich
16.07.2017
12:35:01
Ок, да, так лучше.

Evgeniy
16.07.2017
16:50:57
F# Weekly #29, 2017 – The @openfsharp conf is in Sept
https://sergeytihon.com/2017/07/15/f-weekly-29-2017-the-openfsharp-conf-is-in-sept/
> Sergey Tihon
> Do you know that you can use Brahma.FSharp to execute #fsharp on your GPU even on your MacBook
https://github.com/YaccConstructor/Brahma.FSharp/issues/81#issuecomment-315609228

Евгений
17.07.2017
06:51:03
толкьо сейчас заметил что чат по F# ))
всем пока )

Friedrich
17.07.2017
06:51:20
Будто что-то плохое!

Evgeniy
17.07.2017
08:47:48
Пожалуйте! o/

Dmitry
17.07.2017
12:56:57
https://www.youtube.com/watch?v=mtYAry42MkU

Evgeniy
17.07.2017
13:01:32
Надо добавить в список на гитхабе.

Andrew
17.07.2017
19:55:05
Дано: две функции, например:
let fn1 a b c = a + b + c
let fn2 d e = d * e
Требуется сконструировать функцию fn3 как комбинацию fn1 и fn2 так, чтобы результат, возвращенный fn3 был функцией вида (fun a b c d e f -> ...), при этом сама функция объявлялась бы без аргументов (т.е. чтобы не копировать состав аргументов комбинируемых функций). fn3 должна быть универсальной и не знать о сигнатурах fn1 b fn2. Возможно ли это сделать?