Size: a a a

2020 July 17

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
Вы же говорите, что 0 это функция
вот в примере выше 1 + 2 это константа. но она вычисляется не сразу потому что язык ленивый.
источник

p

polunin.ai in rust_offtopic
polunin.ai
вот в примере выше 1 + 2 это константа. но она вычисляется не сразу потому что язык ленивый.
там неявный UnitType который подставляет рантайм во время работы
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
polunin.ai
ты пишешь
foo (1 + 2) (2 + 3)
и сначала считается foo и если ему нужен первый аргумент то он высчитывается, а если не нужен то он не вычислится никогда. то же и со вторым.
Что сделает этот код если у foo тип unit -> unit? Положит хуй на аргументы, без варна, без ошибки?
источник

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
Что сделает этот код если у foo тип unit -> unit? Положит хуй на аргументы, без варна, без ошибки?
unit это неявный аргумент
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
polunin.ai
вот в примере выше 1 + 2 это константа. но она вычисляется не сразу потому что язык ленивый.
Это не важно, типы же не в рантайме проверяются
источник

p

polunin.ai in rust_offtopic
его нельзя сконструировать явно
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
В хаскеле?
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
И как отличать функцию от юнита от ее вызова?
источник

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
И как отличать функцию от юнита от ее вызова?
еще раз
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
В одном случае я присваиваю переменной результат вызова функции, в другом присваиваю функцию переменной (по сути даю втопое имя)
источник

H

Hirrolot in rust_offtopic
Artöm Bakri Al-Sarmini
И как отличать функцию от юнита от ее вызова?
У функции синтаксис другой: f : T1 -> ... -> Tn и т.д., вызов - f ...
источник

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
В одном случае я присваиваю переменной результат вызова функции, в другом присваиваю функцию переменной (по сути даю втопое имя)
f: Int -> Int

bar = f

bar = f 1

1-е это присваивание имени, второе вызов функции
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
polunin.ai
f: Int -> Int

bar = f

bar = f 1

1-е это присваивание имени, второе вызов функции
А если тип unit -> int?
источник

p

polunin.ai in rust_offtopic
Artöm Bakri Al-Sarmini
А если тип unit -> int?
это константа, котоаря вычисляется на этапе компиляции
источник

p

polunin.ai in rust_offtopic
если у функции нет аргументов это константа
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
А
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
Это все проясняет. При таком подходе нет синтаксической разницы между использованием переменной типа int и типа unit->int
источник

AB

Artöm Bakri Al-Sarmi... in rust_offtopic
Это отличается от мл, поэтому я не понял сначала
источник

SP

Stanislav Popov in rust_offtopic
боже какое все высокоуровневое https://docs.rs/nb/1.0.0/nb/
источник

H

Hirrolot in rust_offtopic
demux-stream высокоуровневее
источник