
Friedrich
28.09.2017
09:59:14
Хотя, хм, тогда непонятно, какой из вариантов функции будет использоваться в match
Действительно, надо будет полиморфизм по структурам с неочевидными последствиями.

Nikolay
28.09.2017
10:02:23
let inline (?) x f = f x
let inline (?) f x = f x
lst ? Seq.filter...

Google

Nikolay
28.09.2017
10:03:17
EOP - Emoji Oriented Programming

Evgeniy
28.09.2017
10:04:51
let inline (?) x = ignore x

Nikolay
28.09.2017
10:05:43
reader.GetValues(values) ? ?

Evgeniy
28.09.2017
10:08:11
Ладно, это все весело.
Но сейчас Дон проснется, что я ему покажу?!

Artemy
28.09.2017
10:08:37
Скрин из чатика

Nikolay
28.09.2017
10:09:01

Evgeniy
28.09.2017
10:24:41
Это тема отдельного пропозала, я думаю. :)

Aleksander
28.09.2017
11:05:05
А мутабельность как ??

Evgeniy
28.09.2017
11:09:37
https://angrydexterous.github.io/typeclassish.html#/
@artemy_b Было сложно, но я откопал.

Artemy
28.09.2017
11:13:40

Google

Artemy
28.09.2017
11:18:30
@gsomix а, я её, кажись, открывал когда-то. Немного полистал и решил в другой раз подробнее посмотреть. ?
Но спасибо. А то я её в закладки не сохранил, а теперь вот сохраню.

Evgeniy
28.09.2017
11:19:33
Да, я тоже потерял.

Artemy
28.09.2017
11:19:56
Она, наверное, в каком-то F# Weekly была?

Evgeniy
28.09.2017
11:20:00
https://gist.github.com/gsomix/a452cca580a98f3b3abbeb69e47dffe1

Friedrich
28.09.2017
11:21:25

Evgeniy
28.09.2017
11:21:59
Инлайнится хорошо.
static $_()
{
$_.res1@9-86 = 1;
$_.x@7-87 = new ValueTuple<int, int>(1, 2);
$_.x@7-88 = _.x@7-87;
$_.res2@10-80 = $_.x@7-88.Item2;
}

Artemy
28.09.2017
11:22:32
PR в FSharp.Core теперь?)

Evgeniy
28.09.2017
11:22:38
Нет.
С таким туда никто не пустит.
Но у меня другая идея есть. ?

Artemy
28.09.2017
11:25:20
PR в FSharpx.Extras?

Evgeniy
28.09.2017
11:29:53

Artemy
28.09.2017
11:30:18
?

Evgeniy
28.09.2017
11:30:52
Смотрите, как дядюшка Форкманн умеет.
https://user-images.githubusercontent.com/57396/30963076-79ffc708-a44c-11e7-8760-b7ac41dd09d1.gif
@angmarr ^
Открывать лучше в браузере.
https://twitter.com/sforkmann/status/913055548920205314

Igor
28.09.2017
11:33:13
А что у него справа за эмуль?

Google

Pavel
28.09.2017
11:33:29

Evgeniy
28.09.2017
11:33:56

Pavel
28.09.2017
11:35:11

Igor
28.09.2017
11:37:38
По кнопкам “закрыть” вроде непохож, может это с Vysor он видео снимает с девайса.
Еще и на фоне какой-то чат.

Pavel
28.09.2017
11:40:32

Evgeniy
28.09.2017
11:47:24
@fvnever Какие-нибудь проблемы со сборкой и тестированием компилятора были?
Ты в Rider это делал?

Nikolay
28.09.2017
11:50:40
Там новый райдер вышел, F# .Net Core не починили?

Evgeniy
28.09.2017
11:52:24

Nikolay
28.09.2017
11:52:55
Просто новый апдейт

Evgeniy
28.09.2017
11:53:22

Nikolay
28.09.2017
11:53:34
2017.1.2

Evgeniy
28.09.2017
11:53:54
2017.1.2
Кто в такие минорные апдейты будет большие фичи делать? :)
Ждем 2017.2

Nikolay
28.09.2017
11:54:43
?

Vladimir
28.09.2017
11:56:40
кто в курсе - работают ссылки сейчас в fsproj на другой проект? я не заходил в проект 2 месяца, обновил до .net core 2.0 и что-то похоже это поломалось

Evgeniy
28.09.2017
11:57:04

Vladimir
28.09.2017
11:57:36
хм.. у меня билдится, но в рантайме выкидывает ошибку как будто не подгрузилась библиотека

Pavel
28.09.2017
11:58:03

Google

Vladimir
28.09.2017
11:58:20
ясно, буду думать что не так)

Evgeniy
28.09.2017
11:58:41
Привет!

Vladimir
28.09.2017
11:59:25

Pavel
28.09.2017
11:59:54
Vladimir А также удалил
<PackageReference Include="FSharp.Core" Version="4.2.*" />
<PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" />

Vladimir
28.09.2017
12:02:40
@Oo_p69 что-то у меня тогда не билдится либа, пишет error MSB4057: в проекте нет целевого объекта "Restore".
@Oo_p69 а нет, все круто, спасибо) удалил bin и obj и заработало с такой конфигурацией

Evgeniy
28.09.2017
12:16:30
let inline retype<'T,'U> (x:'T) : 'U = (# "" x : 'U #)
Как я люблю магию в FSharp.Core

Vasily
28.09.2017
12:18:01
Какая-то совсем магия
AST переписывает?

Evgeniy
28.09.2017
12:18:16
Обычный каст.
Там IL вставка.
В (# ... #)

Vasily
28.09.2017
12:18:46
А кавычки вначале что значат?

Evgeniy
28.09.2017
12:19:06
Там место для IL-инструкции, насколько я понимаю.
let inline retype<'T,'U> (x:'T) : 'U = (# "" x : 'U #)
let add x y = x + y
let res = add (retype<_, float> 1) 1.0
компилируется примерно вот в такой код
$_.res@3-16 = (double)1 + 1.0;
Это используется вот тут:
https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Core/prim-types.fs#L2054
Мякотка — использование when специализаций, недоступное простым смертным за пределами FSharp.Core
Я хочу примерно в таком стиле реализовать fst и snd для кортежей.

Google

Evgeniy
28.09.2017
12:29:15
К сожалению, не могу написать прототип вне FSharp.Core :(
@artemy_b @fvnever ^

Friedrich
28.09.2017
12:30:11

Evgeniy
28.09.2017
12:30:27
Идея в том, чтобы написать специализации для 'a * 'b и struct ('a * 'b), кастануть и сделать match.

Friedrich
28.09.2017
12:32:04

Evgeniy
28.09.2017
12:32:29
Ок.
@fvnever Как тебе идея с fst? Взлетит?

Friedrich
28.09.2017
12:33:10
Ок, попробовать можно.

Mikhail
28.09.2017
12:42:09
Привет всем! Подскажите с такой бедой. Есть проект и в нем есть несколько файлов, в каждом файле описаны свои классы. Проект компилился и собирался, пока я в одном из файлов не допустил ошибку в виде опечатки. После безуспешного билда, ошибку исправил, но второй файл перестал видеть класс из первого файла. Лог выдает примерно следующее: