Size: a a a

2020 April 13

SP

Stanislav Popov in rust_offtopic
Pavel Kvasnikov
Я вот рубист и немного писал на питоне, ощущение реально что на питоне пишут совсем не программисты. А вот что значит руби совсем лисп? Руби всё-таки позиционируется как ООП язык в первую очередь с минимум ФП штуками
три типа лямбд, упоротые контексты у всего, упоротые трюки с подменами методов, упоротые костыли чтобы были декораторы(вернее левая штука которая юзается как декоратор, основанная тоже на подмене методов)
источник

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Popov
три типа лямбд, упоротые контексты у всего, упоротые трюки с подменами методов, упоротые костыли чтобы были декораторы(вернее левая штука которая юзается как декоратор, основанная тоже на подмене методов)
блоки, которые ведут себя вообще как попало запиши
источник

SP

Stanislav Popov in rust_offtopic
ну это и есть три типа лямбд, кек
источник

EG

Emmanuel Goldstein in rust_offtopic
Блоки можно передавать вверх по стеку, но не вниз
источник

EG

Emmanuel Goldstein in rust_offtopic
Если ты передаёшь блок вниз по стеку, он может молча сломаться, если в нём есть control flow operator
источник

A

Aleksandr Khristenko in rust_offtopic
Yarila
@enomad  А что скажешь по поводу  того, что питон используют, чтобы "войти в it"?

Всё-таки прыгать сразу в Хаскель или Раст - это надо быть довольно смелым, если ты до этого никогда в жизни  ни одного  языка не видел.
В хаскель первым языком вполне можно. Миф что он сложный. Другое дело что работы очень мало.
источник

SP

Stanislav Popov in rust_offtopic
Yarila
@enomad  А что скажешь по поводу  того, что питон используют, чтобы "войти в it"?

Всё-таки прыгать сразу в Хаскель или Раст - это надо быть довольно смелым, если ты до этого никогда в жизни  ни одного  языка не видел.
ну а что мне думать. отлично. только питон слишком сложен для входа. был какой то пост какого то препода который ныл что дает просто код людям а ебли с инфраструктурой на неделю в итоге. ну и один хрен нюбам приходится обьяснять почему не == None а is None, а почему 12<a<10 работает а в других языках нет
источник

PK

Pavel Kvasnikov in rust_offtopic
Stanislav Popov
три типа лямбд, упоротые контексты у всего, упоротые трюки с подменами методов, упоротые костыли чтобы были декораторы(вернее левая штука которая юзается как декоратор, основанная тоже на подмене методов)
Если я правильно помню, то два вида лямбд - собственно лямбды с проверкой аргументов и ретурном из лямбды и проки - просто куски кода без проверки аргументов и ретурном из внешнего контенста, третий вид - это инлайн передача аргумента - блок.
источник

EG

Emmanuel Goldstein in rust_offtopic
Но я тоже не понимаю, почему Ruby это LISP.
источник

EG

Emmanuel Goldstein in rust_offtopic
Правильный LISP (не кложа) как раз простой, как топор.
источник

SP

Stanislav Popov in rust_offtopic
ну... КОММОН лисп
источник

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Popov
ну... КОММОН лисп
Тоже заметно менее complicated, чем Ruby
источник

PK

Pavel Kvasnikov in rust_offtopic
Stanislav Popov
три типа лямбд, упоротые контексты у всего, упоротые трюки с подменами методов, упоротые костыли чтобы были декораторы(вернее левая штука которая юзается как декоратор, основанная тоже на подмене методов)
Что за упоротые контексты? Ты про мета классы и ООП всего?
источник

EG

Emmanuel Goldstein in rust_offtopic
А уж нормальные диалекты (вроде Scheme) и того проще
источник

SP

Stanislav Popov in rust_offtopic
Pavel Kvasnikov
Что за упоротые контексты? Ты про мета классы и ООП всего?
ну из того что я помню - можно было передать в класс блок который мог исполняться с переменными класса
источник

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Popov
ну из того что я помню - можно было передать в класс блок который мог исполняться с переменными класса
Блоки вообще прозрачны для почти чего угодно
источник

EG

Emmanuel Goldstein in rust_offtopic
Ruby — это попытка написать Perl правильно, но не прокатило
источник

PK

Pavel Kvasnikov in rust_offtopic
Stanislav Popov
ну из того что я помню - можно было передать в класс блок который мог исполняться с переменными класса
Что значит передать в класс? В методе или при создание анонимного класса?
источник

PK

Pavel Kvasnikov in rust_offtopic
Декоратор это не ключевое слово языка, это паттерн. В руби с этим ок, всё-таки стараются избегать прямого наследования и использовать mixin ака композиция - включаем в класс необходимое поведение, а не наследуем
источник

SP

Stanislav Popov in rust_offtopic
Pavel Kvasnikov
Что значит передать в класс? В методе или при создание анонимного класса?
аргументом. ну ты мог сделать

obj.do_smth {ololo все переменные которые тут будут это переменные класса}
источник