169 похожих чатов

Let getElementByCircuit = _.Id >> ToElementId let getCircuitId (c: Circuit) =

c.Id
let getElementByCircuit = getCircuitId >> ToElementId
Есть ли возможность указать явно тип в первой функции, дабы можно было использовать ее с нужным мне типом параметра, как вторую функцию? Сейчас у меня есть несколько record types с полем Id и в функции автоматически выводится не тот, который мне нужен

10 ответов

47 просмотров

а чего так не сделать: let inline getId x = (^T : (member Id : ^U) x) ??

Artyom- Автор вопроса
Artyom- Автор вопроса
Artyom
Так не будет работать)

почему? это ж более обобщенный вид вот этого: (fun (x: Circuit) = x.Id)

dd
почему? это ж более обобщенный вид вот этого: (fun...

Не совсем. Это разные вещи с точки зрения языка и кодгена. У тебя в первом случае нету констрейнта и трейта в функции, во втором есть.

Vlæd Zá
Не совсем. Это разные вещи с точки зрения языка и ...

то, что с т.з. языка - это понятно а вот то, что с т.з. кодгена - это нежданчик т.е. с сртп получается код медленее работать будет?

dd
то, что с т.з. языка - это понятно а вот то, что с...

Всмысле нежданчик? сртп это инлайн

dd
то, что с т.з. языка - это понятно а вот то, что с...

Не понимаю откуда вывод что медленнее

Vlæd Zá
Не понимаю откуда вывод что медленнее

я думал, что будет так: let inline getId x = (^T : (member Id : ^U) x) (Circuit foo) // вот это: //|> getId // заинлайнится вот в это: |> fun x -> x.Id а после твоих сообщений я уже и не знаю чего думать :)

dd
я думал, что будет так: let inline getId x = (^T :...

Я в N+1 раз советую почитать доки и спеку. В этот раз про инлайн и трейты.

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
10
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Карта сайта