Vladimir
Vladimir
я не могу сделать let myF = getJObjectValue resultNode, ResolvedQuery это стринг, а Score это флоут
Roman
пц ты картинку конечно вставил
Roman
текстом бы уж бахнул)
Vladimir
да без разницы)
ResolvedQuery = getJObjectValue resultNode "resolved_query"
Score = getJObjectValue resultNode "score"
Vladimir
короче приходится копировать
Vasily
Vladimir
ну в том то и дело, myF должна быть дженерик, а нельзя дженерик ей указать в параметре явно
Doge
Vasily
Vasily
У меня есть такая магия
Vasily
let inline request< ^TRequest, ^TResponse when ^TRequest: (static member encode: ^TRequest -> seq<byte>)
and ^TResponse: (static member decode: Seg -> ^TResponse)>
(constructors: seq<int32>) (req: ^TRequest) :Async<Result< ^TResponse,ChannelError>> =
async {
let onGet msg: ^TResponse = deserialize msg.RawData
return! onGet |> sendRequest req (constructors |> withError)
}
Vasily
применяешь так: let a:t = request.....
Vasily
Т.е. просто в let делаешь явное указание типа
Vasily
И компилятор все выводит
Vladimir
Vladimir
Doge
Doge
Если я правильно понял то, что ты хочешь получить
Vladimir
я хочу чтобы когда я в дженерик функцию частично применил параметр который не дженерик, оставшася функция тоже осталась дженерик, а она уже не остается
Doge
Хотя я может соврал насчёт Rank-2
Vladimir
да вот пример который только что давал)
let myF (a: int) b = b
let f1 = myF 1
f1 ""
f1 1
не работает
Roman
если ты хочешь забайндить в модуле, то да, получишь валуева
Roman
Но если локально клепаешь, например, в теле метода, то должно быть норм
Vladimir
тут нету валуе рестрикшна, просто тип выводится не дженерик
Roman
хотя
Doge
Vladimir
да, я тоже соврал) тут все же value restriction
Doge
В хаскеле такое работает запросто:
wtf :: a -> b -> b
wtf _ = id
wat = wtf 1
wat 1
wat "asd"
Roman
если ты просто добавишь воды еще один параметр, то все получится
Roman
в жаве такой проблемы нет, пушто там нормальные женерики
Roman
тф.жпг
Vladimir
Roman
ну вот так. Сорян
Vladimir
let myF a b =
let x = b
b
x - дженерик вэлью
Roman
но оно не в модуле
Vladimir
так и пример выше был не в модуле, а внутри функции
Vladimir
хз как точно правило выразить)
Vladimir
let myF2 () =
let myF a b = b
let f1 = myF 1
// f1 ""
// f1 1
f1
так f1 работает как дженерик, если раскомментить то уже не дженерик и не работает)
Nuxs🏴☠️
Nuxs🏴☠️
Romɑn
Господа,
Вдруг это кому важно.
Я в Москве до 11 июля.
Если у кого есть необходимость или даже желание увидеться, то давайте соберёмся
Romɑn
Пиню используя служебное положение
Vladislav
Вирус
Dr. Friedrich
Romɑn
Hog
Romɑn
Нувот.
Англосаксов не касается
Romɑn
Даже если они из самары
Vladislav
Боюсь он к англосаксам отношения не имеет
Hog
Romɑn
Ты его видел? Гоша чистокровный уроженец Ливерпуля, просто родом из России
Hog
Romɑn
- Гоша, скажи, лорри или тракс?
- Трокс!
Hog
Фокин
Romɑn
Задолбал своим кокни, говори на русском
Romɑn
:D
Romɑn
Dr. Friedrich
О, точно. Неплохая игра.
Крылатый
habib
так?
Igor
Все еще идет, можно послушать Нолана (один из авторов clojurescript)
Igor
https://zoom.us/j/94969377957?pwd=YnlYbzl1M0RMYk9DZlcxek5FR2JYZz09 - Заходите с Дэвидом Ноланом поговорить
Igor
Закончилось, но имхо было круто - Девида Нолана всегда приятно послушать
Vladimir
habib
да, не рабатает
Vladimir
Пульсаровцы решили последовать за фп модой и заюзать трипл
Vladislav
а в райдере можно путь до фшарп компилятора указать?
Aleksandr
Как вариант, можно сделать локальную копию сдк и поменять переменную среды DOTNET_ROOT из dotnet cli
Aleksandr
Я сомневаюсь, что райдер использует fsc.exe напрямую, не представляю как
Андрей
Vladimir
это напомнило меня лет пять назад) я тогда тоже пытался по максимуму туплы заюзать, потому что ну есть же такая фича в языке, хз правда зачем, но видно создателям языка виднее)
Dr. Friedrich
Ayrat