История изменений
Исправление
dave,
(текущая версия)
:
Начиная с мелочей, как превалирующая иммутабельность, продолжая паттерн-матчингом, enum как ADT, и заканчивая такими вещами, как struct как record, очень похожей модульной системой, trait как type class, generics constraint как type class constraint, impl как instance и тому подобным. А trait object в Haskell будет через forall.
Детали могут отличаться, и они отличаются, ключевые слова иногда по другому выглядят, но сама работа с объектами (не в чистых терминах ООП - его нет ни там, ни там) очень похожа - узнаю тот же самый стиль.
Создаем структуру в Rust. Помещаем в модуль. Так достигаем инкапсуляции. Структура может реализовать такой-то trait, где некоторые функции могут вызываться при выполнении таких-то ограничений. Trait уже может предоставлять готовую часть функциональности. Trait может наследовать другие traits. Все это именно то, как пишутся программы на Haskell. И по моим сведениям буквально в таком виде больше нет ни в одном другом популярном языке (индекс TIOBE >= 20)
Исходная версия
dave,
:
Начиная с мелочей, как превалирующая иммутабельность, продолжая паттерн-матчингом, enum как ADT, и заканчивая такими вещами, как struct как record, очень похожей модульной системой, trait как type class, generics constraint как class type constraint, impl как instance и тому подобным. А trait object в Haskell будет через forall.
Детали могут отличаться, и они отличаются, ключевые слова иногда по другому выглядят, но сама работа с объектами (не в чистых терминах ООП - его нет ни там, ни там) очень похожа - узнаю тот же самый стиль.
Создаем структуру в Rust. Помещаем в модуль. Так достигаем инкапсуляции. Структура может реализовать такой-то trait, где некоторые функции могут вызываться при выполнении таких-то ограничений. Trait уже может предоставлять готовую часть функциональности. Trait может наследовать другие traits. Все это именно то, как пишутся программы на Haskell. И по моим сведениям буквально в таком виде больше нет ни в одном другом популярном языке (индекс TIOBE >= 20)