@Fsharp_chat

Страница 233 из 772
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 ссылки не добавляются.

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
Не так давно я слышал, что .net core ещё жутко сырой и нормально на нём можно делать только мелкие проекты. Кто-нибудь что-нибудь более конкретное может сказать на этот счёт? Мелкие проекты я на убунте позапускал, с ними все ок.
Если говорить про .NET Core в целом, а не про поддержку F#, то он очень даже рабочий и готов к использованию в проде. Уже в трёх рабочих проектах использовал - вполне-себе замечательно живет.

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

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

Pavel
15.07.2017
12:18:19
ну т.е. в ручную писать xml (пусть даже копипастить) не хочется. Как с этим общественность справляется? :)
Не надо ссылки писать внутри fsproj. Добавляешь в paket.refereneces и делаешь dotnet restore. Новые тулы инжектят зависимости иначе

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
Не пойму, нет другой функции split для строк, кроме нетовской в систем стринг?
(палю годноту ?) @fsdnbot - вводишь в него: string -> char[] -> string[] получаешь списков функций… (спойлер только string.split)

Friedrich
16.07.2017
04:27:29
Ну как-то от c# я устал и хочу чего-то нового. @nevoroman А поддержка f#, видимо, отстает?
Отстаёт только поддержка F# на .NET Core в студии. В других средах всё ок, и тулинг вне студии прекрасно работает. У меня несколько сайтов уже давно на F# под линуксом крутятся, никаких проблем :)

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
У тебя и в C# бы такой код не заработал.
Но ведь позволяет же if (state == null) return;, пускай и без матча.



Friedrich
16.07.2017
12:21:23
Object.Equals?

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

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

Но ведь позволяет же if (state == null) return;, пускай и без матча.
Ок, да, я был неправ, C# в таком случае без проблем делает автобоксинг.

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. Возможно ли это сделать?

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