@Fsharp_chat

Страница 331 из 772
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
Но сейчас Дон проснется, что я ему покажу?!
PR в Operators let inline (?) x f = f x let inline (?) f x = f x let inline (?) x = ignore x

Evgeniy
28.09.2017
10:24:41
надо сделать интерфейс ITupebel отнаследовать от него коретежи и let fst<T>(T:where T is ITupebel) .
Интересное дело, даже с помощью SRTP не получается сделать fst.

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

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

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
PR в FSharpx.Extras?
Вечерком расскажу. Сохраню интригу. ?

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
Смотрите, как дядюшка Форкманн умеет. https://user-images.githubusercontent.com/57396/30963076-79ffc708-a44c-11e7-8760-b7ac41dd09d1.gif
Только это вроде Maxime Mangel сделал. Форкманн уже пару дней везде пишет хвалебные оды в честь Maxime))

Pavel
28.09.2017
11:35:11
А что у него справа за эмуль?
Да вроде обычный андроид эмуль. Или нет?

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

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

Ты в Rider это делал?

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

Nikolay
28.09.2017
11:52:55
EAP?
Нет, не EAP

Просто новый апдейт

Evgeniy
28.09.2017
11:53:22
Просто новый апдейт
Я думаю, неткор будет в 2017.2 или даже позже.

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 и что-то похоже это поломалось

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

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

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

Vladimir
28.09.2017
11:59:25
обновил с netstandart 1.6 до 2.0 - все работает
<Project Sdk="FSharp.NET.Sdk;Microsoft.NET.Sdk"> вот так описана библиотека?

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
Ты в Rider это делал?
В терминале делал.

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
Привет всем! Подскажите с такой бедой. Есть проект и в нем есть несколько файлов, в каждом файле описаны свои классы. Проект компилился и собирался, пока я в одном из файлов не допустил ошибку в виде опечатки. После безуспешного билда, ошибку исправил, но второй файл перестал видеть класс из первого файла. Лог выдает примерно следующее:

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