Здравствуйте, AlexRK, Вы писали:
ARK>А также объявлений типов, модулей и много чего еще. В общем, "всё есть выражение" это преувеличение, ИМХО.
Ну это же для блоков кода имеется в виду. "Все есть объект" тоже даже для Smalltalk не верно
если так рассматривать.
Хотя модули в том же OCaml (и других ML) тоже первоклассные сущности, их можно например
параметризовать
https://dev.realworldocaml.org/first-class-modules.html
rust это не перенял, но некоторые забавные вещи оттуда все-равно перешли, например
модуль вложенный в функцию
:
fn tst() -> i32 {
mod tst {
pub fn id() -> i32 {123}
};
tst::id()
}
fn main() {
println!("{}", tst());
}
FR>>Ну и в том же rust функция вполне значение:
ARK>А как выразить тип "функция с любым входом и/или любым выходом"?
А такое выражается хоть в каком-то строго статически типизированном языке,
без применения средств макропрограммирования, только типами?
Хотелось бы посмотреть пример, и как можно использовать.