@Fsharp_chat

Страница 763 из 772
Ayrat
19.10.2018
17:41:27
Да, это патерн вида Что угодно типа стринг или null

Klei
19.10.2018
17:43:11
Капец. Я вообще забыл о том, что в подобных выражениях можно юзать несколько паттернов.

Roman
19.10.2018
19:11:01
Ayrat
19.10.2018
19:11:45
Это ужасно
да. Из сишарпа только какое-то говно приходит

Google
Roman
19.10.2018
19:12:22
Привет

Привет

Привет

TheRainwildsKeeper
19.10.2018
20:27:57
Ionide на маке требует моно, или все таки нет кора достаточно?

Evgeniy
19.10.2018
20:46:03
но у меня не стартует без установки дополнительного пакета в проект

Evgeniy
19.10.2018
20:52:37
dotnet add package FSharp.Compiler.Service
^ у меня без этого не пашет, даже указывая прямой путь к fsi, хотя на работке все норм, переменные среды не менял, хз, как это объяснить

попробуй полный путь в vscode сначала указать для fsi

Ranorex
19.10.2018
21:07:08
Привет
Привет

Grigoriy
19.10.2018
21:20:57
May the f#rce be with you!

Darth
19.10.2018
21:21:52
May the f#rce be with you!
may the drink be with you!=)

Grigoriy
19.10.2018
21:22:38
А это ты в зелёненьком?

Google
Grigoriy
19.10.2018
21:22:54
72 из Спартанцев знаешь?

Grigoriy
19.10.2018
21:24:22
Дарт Ведер в чорном должен быть :)

Darth
19.10.2018
21:27:04
Дарт Ведер в чорном должен быть :)
moya zhizn na stolko chernaya, chto esli ugovorit komandu smenit tsvet - menua v etom mire voobshe ne budet zametno)

Grigoriy
19.10.2018
21:28:02
С этим - в параллельный чатик

Darth
19.10.2018
21:28:55
:(

Roman
19.10.2018
23:36:09
Привет!

Sauron_AZM
19.10.2018
23:37:05
Ку-ку, котята

Grigoriy
19.10.2018
23:44:30
Ку-ку, котята
Это тематический чат. С котятами - в параллельный

Dim
19.10.2018
23:45:22
С котятами в Scala понв

Или как это у них там называется

Grigoriy
20.10.2018
03:42:44
У них кошки. Котятки - kittens

Dim
20.10.2018
04:16:49
Ааа, точно, у них cats

Daniel
20.10.2018
08:16:20
kittens тоже есть)

Когда нужно скрестить cats и shapeless

Grigoriy
20.10.2018
12:47:24
kittens тоже есть)
Я же не могу всё на свете знать :)

Andrew
21.10.2018
11:46:36
Есть функция многих аргументов fn. Возможно ли написать общую ф-цию (не зависющую от количества аргументов fn), которая будет маппить результат fn?

Google
Roman
21.10.2018
11:52:40
Ayrat
21.10.2018
11:52:52
да
Тогда нет. Шейплесс в скале умеет абстрагироваться от арности функций и типов вообще

Плебеи в фшарпе не могут

Andrew
21.10.2018
11:53:36
пичаль. в билдеры пока не погружался

Vasily
21.10.2018
11:57:00
Да там все просто

Пишешь билдер

Daniel
21.10.2018
11:57:18
Можно на основе билдера
Не очень представляю, как. Что конкретно имеется в виду под билдером? Computation expression builder как-то не вяжется с задачей

Vasily
21.10.2018
11:57:31
Который на вход принимает твою функцию

Плюс пустое значение объекта, которое надо получить

У билдера можно задать внутреннее состояние, к которому последовательно применять результаты custom operations

Ща

Friedrich
21.10.2018
11:59:51
да
То есть ты хочешь обобщённый вариант curry? Или что?

Vasily
21.10.2018
12:00:45
Короче, идея такая

У тебя есть функция вида 'a->'b

Где 'a это длинная цепочка параметров 'c->'d->'e

А 'b соответственно результат фукнции

Andrew
21.10.2018
12:03:26
То есть ты хочешь обобщённый вариант curry? Или что?
Например, val fn1: 'a -> 'b -> 'c -> int val fn2: 'd -> 'e -> int val mapper: int -> float Как сделать универсальную функцию, которой можно будет передать любую fn и mapper и получить функцию, которая принимает все аргументы fn и результат пропускает через mapper

Vasily
21.10.2018
12:03:31
Далее тебе надо написать несколько кастомных операций

На каждый тип аргумента

Google
Vasily
21.10.2018
12:06:25
type C<'b>(f:'a->'b) = [<CustomOperation("apply")>] member this.M(ctx,a)=ctx a member this.Yield(())=f

Что-то похожее на это

И в билдере потом {apply 1} этц

Admin


Friedrich
21.10.2018
12:07:59
Наверняка на SRTP можно такой состряпать каким-нибудь наркоманским способом.

Vasily
21.10.2018
12:11:57
Friedrich
21.10.2018
12:12:48
Читай выше. По факту нам нужен function expression :)
Я не понимаю, как будет выглядеть применение твоего решения

Попробую пока состряпать на CRTP.

Хотя вряд ли получится, конечно.

Vasily
21.10.2018
12:14:09
let builder =Builder (f) let res= builder{ apply 123 applyStr "124" }

Friedrich
21.10.2018
12:14:30
Но это просто билдер для того, чтобы заврапать функцию.

Vasily
21.10.2018
12:14:44
Да

Но на компиляции будет ругаться, если ты чего забудешь

Friedrich
21.10.2018
12:15:49
Ок, это довольно симпатичная штука.

Vasily
21.10.2018
12:16:44
Там проблема, что под каждый аргумент, похоже, надо писать свою кастомную функцию. Но это не точно

Anna
21.10.2018
12:16:49
А если fn возвращает тоже функцию ? мы же не можем понять, докуда декаррировать

Vasily
21.10.2018
12:17:04
Можем

У нас в билдере надо явно задать

Anna
21.10.2018
12:17:26
ну если только явно это задать

Google
Anna
21.10.2018
12:17:32
универсально же никак

Vasily
21.10.2018
12:17:43
Универсально тут не работает, к сожалению

Grigoriy
21.10.2018
12:18:38
а fn >> mapper не сработает?

Vasily
21.10.2018
12:20:13
Ну маппер не универсальный, поэтому будет цепочка

Friedrich
21.10.2018
12:32:07
Потому что у них у всех будет сигнатура 'a -> 'b, и задача тогда решится автоматически.

Andrew
21.10.2018
12:33:32
ну.. если рассматривать чатсную задачу, то проблем нет. могу конечно. Но не хочется копипастить и хочется универсализма.

Friedrich
21.10.2018
12:33:57
Даже если получится такое написать, оно мёртвых из могил поднимет.

Andrew
21.10.2018
12:34:34
по идее хорошоб иметь возможность в языке

Andrew
21.10.2018
12:37:36
тема понятности - отдельная. стремясь что-то упростить мы неизбежно усложняем что-то другое. Другими словами - делая более простой прикладную логику, усложняется ядро. Делая более простым язык программирования - усложняется компилятор/интерпретатор. Или же добавив такую функцию (»») мы упростим написание кода, но добавится сложная функция маппинга.

и вообще я бы предпочел иметь такую функцию маппинга в саммо языке F#. Тут выше говорили, что такая возможность есть в скала, кажется.

Vasily
21.10.2018
12:38:57
Короче , походу ,во флудилке пора заводить игру "норкоман дня"

Ayrat
21.10.2018
12:39:22
Не, тут без высоких абстракций не написать. А Дон против высоких абстракций!

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