@Fsharp_chat

Страница 645 из 772
Ayrat
20.07.2018
13:15:22
понял

Vasily
20.07.2018
13:15:37
С меню там повеселее, конечно

Короче

На самом деле

Google
Vasily
20.07.2018
13:19:18
Змейка

Это сложная структура

Состоящая из следующих параметров

1. Координаты головы

2. Последовательность сегментов с направлением

Тогда она на такте каждом прекрасно фолдится

Ayrat
20.07.2018
13:21:27
ща, в начале надо настроить актор систему :D

Vasily
20.07.2018
13:21:37
Хуячь так

Dmitry
20.07.2018
13:24:48


кажется, разобрался - дело было не в кабине

хотя нет - слева всё равно импорты неймспейсов/модулей красные

Vasily
20.07.2018
13:44:42
Чет Ayrat затих :)

Ayrat
20.07.2018
13:45:01
кодирую)

Google
Roman
20.07.2018
15:45:05
Vasily
20.07.2018
15:48:17
Лучше два

Roman
20.07.2018
15:50:36
Следующую статью от @Kleidemos зарядили в Майкрософт. Ждём когда опубликуют

Участники сообщества могут прочитать сейчас если интересно :)

Ayrat
20.07.2018
15:54:32
С нетерпением жду комментариев

Igor
20.07.2018
18:01:11
Кто-нибудь слышал, а если планы разрешить вызывать методы C# классов через <ClassName>.<MethodName> <instance> <args1> <args2> ... Это бы сильно помогло тайп-инференсу при интеропе (ну и более функционально) Типа String.ToUpper "hello"

Igor
20.07.2018
18:06:13
За тем что если сейчас сделать let foo a = a.ToUpper () то это не скомпилируется (пока явно тип не укажишь)

А так можно было бы написать let foo a = String.ToUpper a или let foo = String.ToUpper ну и там композить их как обычные функции, передавать их как параметр и тп

В Java/Kotlin (вроде даже в C#) есть method-reference, думаю здесь тоже можно было бы их использовать. Вот пример вызова (здесь и дальше Kotlin) fun <T> foo(f: (T) -> Int, x: T) = f(x) fun main(args: Array<String>) { // простой вызов метода из лямбды foo({ x -> x.length }, "") // method-reference, ВМЕСТО лямбды foo(String::length, "") }

Вот ее можно даже сохранить в переменную (даже при том, что это метод экземпляра класса) val f: (String) -> Int = String::length

Roman
20.07.2018
18:44:14
ПРИВЕТ!

Roman
20.07.2018
18:45:13
а кто на опыте может книгу на русском посоветовать по F# для человека который имеет опыт программирования на c# (ну всмысле не для прям новичков)?

Evgeniy
20.07.2018
18:47:48
Uniform function call syntax наоборот. :)

Летучая
20.07.2018
18:55:17
а кто на опыте может книгу на русском посоветовать по F# для человека который имеет опыт программирования на c# (ну всмысле не для прям новичков)?
>на русском На русском по понятным причинам материалов не много. А вообще стоит начать с этого https://m.habr.com/company/microsoft/blog/335560/ далее fsharpforfunandprofit и railway-oriented programming ну и в завершение замечательную книгу Скотта Влашина "Domain Modeling Made Functional"

Roman
20.07.2018
18:56:11
О как раз, я c# разраб, спасибо

Google
евроневидимка
20.07.2018
18:58:26
лол, уже удалился

Roman
20.07.2018
22:36:48
Привет!!

Evgeniy
21.07.2018
07:17:37
Привет из ирцы. :)

Марина
21.07.2018
07:40:51
Привет!!
Привет!

Sergey
21.07.2018
08:48:33
Свежая пресса https://sergeytihon.com/2018/07/21/f-weekly-29-2018-magic-of-saturn-code-prediction-with-nn-and-happy-birthday-to-sforkmann-and-trikace/

Vlad
21.07.2018
09:05:08
https://sharplab.io/#v2:DYLgZgzgNALiCGEC2AfA2gHgMowE4FcBjGAPgF0BYAKBgE8AHAUwAIBhAe3wDs9bmBeas2HMUzAKpcA1l3YB3LkJFiAglwAm7XLnhLhYyQEsYjdSp0AjAKJJDOkxD2jmKsAHMAFvC6GIMb06qPIZu+PBq6gBC8LgW+Oq6VCLOaqGGwMCJyarAFt6GWcouuEiMPoX6zAByjDAejLiZGhBqMOnAjI5JRansmYHFbmVtXBUppbiGhN5Y8EjsY6r4fpOLLst48MAFA+b4ebtN6gCSEEdd2S4AXg15hgBWAd2VkewQ5REAEg03buwAboZRgNorF4JoLkVolw3Jl1J0PCDGMA3IZ8EgQfhcFIgfAAGKIdiYlExHbPZzRDw6IGYggaQxInyKcliWZAmCgurIxhIWhIkrxNaROmMQwAERiywgWzmIL6hkBQp0V3SIPgXiQiBBHnw/mZl1e+H+tVORzlMAgcm8QuRkshL2RhhuA1Y1oSLvYhDepu86ntzg4MKJLLYwx0wFck2mXAASox6PttoQPUHhfArld4ICMowBlg5MYbo1fQNjv8tLQOIgYB72FIfc0XR50rmQ66Jux2Pqiqxm8C2312EgLGTLp8u24ANIToA

Забавно

アレクセイ
21.07.2018
10:01:07
Странно. В других группах такого не видел.

Igor
21.07.2018
14:44:52
Хм, слышал что его закрыли

Ivan
21.07.2018
15:18:15
Коллеги, смотрите какой юз кейс. Пусть у меня есть DU type A = | B of int | C of string. И некая функция: let (f : 'a - Option<'b>) (a:'a) - можно ли как то передать туда без оверхиада, что этот f = math x with | B i - Some i | _ -> None ? Что типа f (B _)

Vasily
21.07.2018
16:09:40
Option.bind не подойдёт?

Ещё можно op_explicit сделать для типа

Ivan
21.07.2018
16:14:20
Вась, идея сделать из DU CASE сделать функцию 'du -> option 'v - то есть как то вытащить то, что делает компилер при матче. С минимальным оверхиадом

Vasily
21.07.2018
16:27:04
Ну напиши op_ explicit руками

Или заюзай либу с типами

Тцапалиса

Google
Vasily
21.07.2018
16:27:44
Не помню, как называется, к сожалению

Roman
21.07.2018
17:23:47
Typeshape?

Vasily
21.07.2018
17:29:16
Угу

Vasily
21.07.2018
20:25:58
Хммм ...походу, у DU есть ограничение на количество веток

Ayrat
21.07.2018
20:27:28
Хммм ...походу, у DU есть ограничение на количество веток
так вот ишью был недавно создан https://github.com/Microsoft/visualfsharp/issues/5342

Ivan
21.07.2018
20:52:20
Typeshape?
Плохо объяснил. Попробую по другому. Active pattern имеет сигнатуру 't -> Option<'t1> , можно ли получить из записи паттерна функцию. (| Eror e -> ) в фукцию (fun a -> match a with |Error e -> Some e | _ -> None)

Vasily
21.07.2018
20:55:21
Ничо не понял

Ivan
21.07.2018
20:58:02
Любой деструктурирующий паттерн - это функция с сигнатурой 't -> Option<'d> - это ведь так?

Vasily
21.07.2018
20:59:12
Мне кажется, не совсем

Можно в шарплабе глянуть, во что развернется

Ivan
21.07.2018
21:00:01
Судя по active pattern - именно так.

Ivan
21.07.2018
21:02:17
Вот и хотелось бы из паттерна матча с кейзом DU получить соотсетствующую функцию

В общем то я понял что нельзя. Но хотелось бы. Что то типа: type DU = | A of int | B of string let exec f b v = match f v with | Some x -> b x |> Some | _ -> None И вызов: exec |A| (-) (A 2) результат Some(-2)

Ivan
21.07.2018
21:14:24
Это не считается ?

Хотелось бы прямого синтаксиса,, превращющего паттерн в фунцию

Vasily
21.07.2018
21:17:23
Напиши пропозал

Мол, хочу набор функций из актив паттерна

Google
Ivan
21.07.2018
21:22:26
Актив паттерн и так функция ?. Я из любого паттерна функцию хочу :-)

Vasily
21.07.2018
21:23:10
Пропозал, ну или сам в компилятор запили

Klei
22.07.2018
05:45:07
Quotations можно как-нибудь в строковый код преобразовать?

Klei
22.07.2018
05:50:29
Ну наконструровал я на Expr какое-нибудь выражение, сказал ему toCode myExpr и он выдал мне нечто вроде "let q = 42".

Evgeniy
22.07.2018
05:51:00
Нет, это нетривиально.

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