Hacker News Digest

14 октября 2025 г. в 14:20 • ryelang.org • ⭐ 77 • 💬 83

OriginalHN

When if is just a function

В языке Rye конструкции управления потоком, такие как if, for и while, являются обычными функциями, а не специальным синтаксисом. Это обеспечивает три ключевых преимущества: единообразие (все элементы языка следуют одним правилам), гибкость (конструкции можно составлять и передавать как аргументы) и расширяемость (возможно создание собственных версий управляющих структур). В отличие от Python, где if x > 5: print("big") является синтаксическим исключением, в Rye if temperature > 30 { print "It's hot!" } — это просто вызов функции, принимающей условие и блок кода как значения.

Ключевая особенность Rye заключается в том, что кодовые блоки {...} являются данными, которые не выполняются до явного вызова. Это позволяет использовать единый шаблон для всех конструкций: имя, за которым следуют аргументы, некоторые из которых могут быть блоками кода. Например, if x = 5 { print "five" }, loop 10 { .print } и add: fn { a b } { a + b } следуют одному и тому же паттерну, стирая границу между языковыми конструкциями и функциями библиотеки.