Dr. Friedrich
Один для функций, который всегда возвращает сам себя
Dr. Friedrich
И второй — для юнита
Dr. Friedrich
Ага?
Дмитрий
вам что-то такое не прокатит?
в "нормальном языке" debugLog настолько агрессивно заинлайнил debugEnabled, что забыл, что она мутабельная
Дмитрий
а, нет, я дебил
Дмитрий
Дмитрий
???
Nikolay
kprintf не отвалится?
Дмитрий
в любом кроме ассемблера
ну во-первых в ассемблере функций нет а во-вторых в моем "любимом" сишарпе у функций может быть сколько хочешь аргументов
Дмитрий
это 1 аргумент тупл называется.
так в спецификации языка написано?
Дмитрий
я вот не помню чтоб у меня где-то были какие-то туплы
Дмитрий
а как out/ref параметры в туплы засунуть?
Nikolay
А в C# в Func разве может быть сколько угодно аргументов?
Pavel
а причем тут спецификация? в програмировани это тупл. в реализации конкретного языка это может называтся как угодно со своими тараканами что туда можно засунуть
Дмитрий
А в C# в Func разве может быть сколько угодно аргументов?
ну сколько написали генерик делегатов столько и может
Dr. Friedrich
У кого есть сэмплы с SRTP? Я опять всё позабыл
Dr. Friedrich
Через оператор $ чтобы, ну или что-то такое эдакое
Nikolay
14
https://docs.microsoft.com/en-us/dotnet/api/system.func-17?view=netcore-3.1 16
Vladislav
https://docs.microsoft.com/en-us/dotnet/api/system.func-17?view=netcore-3.1 16
потом заебались дженерики писать
Dr. Friedrich
https://stackoverflow.com/a/51010918/2684760 вроде во
Дмитрий
где про это можно прочитать
Nikolay
Aleksandr
ну вот я и спрашиваю, в каком программировании это тупл
в программировании - да, не очень. в математике - да
Дмитрий
в программировании - да, не очень. в математике - да
а в математике функция возведения в степень давно от одного аргумента?
Aleksandr
от одного кортежа элементов
Aleksandr
тупл - это кортеж по-русски
Дмитрий
я знаю что такое тупл
Dr. Friedrich
Смотри чо
Aleksandr
просто этот термин точно у нас в матане где-то фигурировал
Aleksandr
не могу вспомнить где
Dr. Friedrich
type T = T with static member inline ($) (T, arg: unit) = () static member inline ($) (T, func: 'a -> 'b): 'a -> 'b = fun _ -> (T $ Unchecked.defaultof<'b>) let inline negate<'a>(): 'a = let argType = typeof<'a> printfn "%A" <| typeof<'a> T $ Unchecked.defaultof<'a> Вот такое должно работать, наверное
Dr. Friedrich
Но пока что у меня ни хрена не вышло
Дмитрий
просто этот термин точно у нас в матане где-то фигурировал
у нас тоже было, но вот не в контексте функций
Дмитрий
(и я тоже не помню где)
Dr. Friedrich
Он ругается, что второй инстанс оператора не находит сам себя, кажется
Nikolay
Dr. Friedrich
Ну вот да
Dr. Friedrich
А как починить?
Aleksandr
(и я тоже не помню где)
в теории множеств еще, может быть
Pavel
где про это можно прочитать
про что прочитать то? то запись (_,_,) это тупл? любая книга по фп. там более честные определения
Aleksandr
и если определять мат. функцию как правило отображения множества A на B, то там будут кортежи
Дмитрий
про что прочитать то? то запись (_,_,) это тупл? любая книга по фп. там более честные определения
в любой религиозной книге тоже можно прочитать много интересных вещей, они от этого правдивыми сразу не становятся в тайпскрипте, например, тупл - []
Dr. Friedrich
А в F# и a, b, c — тоже тупл, без всяких скобочек.
Pavel
А в F# и a, b, c — тоже тупл, без всяких скобочек.
только в функцию ту его без скобочек не передашь.
Aleksandr
тут поинт, наверное, в том, что в typescript есть пустые кортежи, видимо
Dr. Friedrich
let x = a, b, c foon x
Dr. Friedrich
Или через всякие там <| и т.п. приколы
Dr. Friedrich
Хотя тут хз, сработает ли; наверняка у запятой повыше приоритет?
Pavel
let x = a, b, c foon x
имелось ввиду что не передашь без промежуточного значения
Aleksandr
это не промежуточное значение. это то же значение
Aleksandr
тождественное ему. alias по сути
Pavel
блин. я про синтаксис. понятно что для выполняемого кода это одно и тоже.
Pavel
что let что скобки собирают тупл из нескольких элементов
Дмитрий
а, т.е. ты применяешь понятие "тупл" к языкам, в которых их нет, только потому что и там и там круглые скобки
Aleksandr
ну это кстати, соответстувет тезису о том, что функции из ML\F# - это таки функции от одного аргумента. Но мемберы из ООП F# не получается так рассматривать. из-за всяких [<Out>], [<ParamArray>]
Дмитрий
ладно, в сишке есть туплы
Дмитрий
раз в тайпскрипте туплы это [...] то в ассемблере mov [eax], ebx - тоже тупл
Pavel
раз в тайпскрипте туплы это [...] то в ассемблере mov [eax], ebx - тоже тупл
странные у тебя ассоциации. я тебе про общепринятую нотацию, а ты какуюто маргинальщину. ну брейнфак тогда уж вытащи там тоже + чето значит
Дмитрий
что такое "общепринятая нотация"
Дмитрий
ты даже сам сказал, "книжка по фп"
Дмитрий
сишка это фп язык?
Pavel
Дмитрий
а где в сишке функции первого порядка, замыкания и прочая лямбда-дичь?
Dr. Friedrich
А что за оператор $?
Я же сам его в этом примере и ввёл.
Pavel
а.. сишка.. я думал ты про свой любимый сшарп.. попутал
Nikolay
Сложно
Aleksandr
а еще напомните пожалуйста язык, в котором туплы определяются в <...>