Size: a a a

2020 July 17

E

Eugene in RubyRush
Ilya L.
С рекурсией на руби еще легко поймать ошибку  stack level too deep.
на любом языке, где допустима рекурсия, будет именно такая ошибка в таких же программах (неправильно написанных)
источник

E

Eugene in RubyRush
по коду, если честно, ничего не понятно (точнее, код понятный, но вопрос не понятный)

но по code style - self надо писать только в тех случаях, где без него не обойтись (не работает)
источник

E

Eugene in RubyRush
вопрос понял
источник

E

Eugene in RubyRush
ответ такой - для того, чтобы Ruby мог отличить присвоение локальной переменной от вызова "сеттера", надо писать self - да
источник

E

Eugene in RubyRush
# локальная переменная
age = 18

# setter
self.age = 18
источник

IL

Ilya L. in RubyRush
Eugene
на любом языке, где допустима рекурсия, будет именно такая ошибка в таких же программах (неправильно написанных)
Да, согласен. Однако, по моим ощущениям, в руби проще, чем в некоторых.
Каждый день новое узнаю, еще двух недель не прошло - вот узнал, что в руби можно включать оптимизацию хвостовых вызовов. Один и тот же код с включенной оптимизацией и без неё выдавал либо результат, либо ошибку stack level too deep . Но раз такое не часто пользуют, то злоупотреблять разве что в личных образовательных целях.
источник

IL

Ilya L. in RubyRush
А в некоторых языках вообще нельзя включать хвостовую оптимизацию, а в других она по умолчанию включена
источник

E

Eugene in RubyRush
А, я понял. Ну это какие-то необычные довольно задачи, где требуется рекурсию на такую "глубину" делать.
источник

E

Eugene in RubyRush
да, это вызов функции изнутри этой функции (либо опосредованно через другие функции)
источник

DC

Dan Chel in RubyRush
привет друзья, почти в 40 лет начал воплощать свою мечту - стать "кодером" )
источник

ОШ

Олег Шлигін... in RubyRush
47. Слабо. ;)
источник

ОШ

Олег Шлигін... in RubyRush
Ограничений НЕТ.  Только  желание.
источник

E

Eugene in RubyRush
рекурсивный код, как раз, обычно считают более простым :)
источник

E

Eugene in RubyRush
ну у вас просто "мыслеобраза" рекурсии нет
источник

UN

Ungot Noname in RubyRush
Если х == 1 или 0 оператору if (x) все равно. Только if с явным условием. За истину или ложь не воспринимает, срабатывает всегда истина. Это у меня такой глюк или особенность языка?
источник

Э

Эдем in RubyRush
источник

UN

Ungot Noname in RubyRush
Понятно. Спс.
источник

AN

Alexandr Nikolaev in RubyRush
источник

AN

Alexandr Nikolaev in RubyRush
Кто нибудь на этой штуке работал?
источник

A

Anton in RubyRush
Владислав
Очень развернуто и подробно)
Почитайте ещё на эту тему учебник по Ruby от Head First. Там максимально доступно объясняют
источник