ruby pearls

Dec 07, 2016 14:20


2.2.0 :004 > ':xyz'.split(/:/)[0]
=> ""
2.2.0 :005 > ''.split(/:/)[0]
=> nil
2.2.0 :006 > 'xyz'.split(/:/)[0]
=> "xyz"

2.2.0 :001 > weak_key = lambda {|c| c.split(/:/, 2)[0]}
2.2.0 :002 > weak_key('xyz:1986')
NoMethodError: undefined method `weak_key' for main:Object

2.2.0 :003 > def weak_key(x ( Read more... )

Leave a comment

thedeemon December 7 2016, 16:07:17 UTC
Вы просто не прониклись духом подлинного ООП, где вызов метода это посылка сообщения, определение метода - тоже.

Reply

sassa_nf December 7 2016, 16:08:55 UTC
и что-то еще правильными кложурами и lexical scope не проникся, да

Reply

thedeemon December 7 2016, 16:38:09 UTC
Конечно, определение метода это вам не определение функции какой, с замыканием. Нечего тут! Есть локальные переменные, есть поля объекта, какие еще замыкания, какой еще лексикал скоуп?

Reply

nponeccop December 7 2016, 19:14:03 UTC
Это ты ещё питона не видел! Там трипл фейспалм.

Reply

vinslivins December 8 2016, 07:45:18 UTC
методы динамические. вызов метода перетёр предыдущее определение метода.

а константы лексические. плюс в рельсах (а это обычное применение руби) они сломаны под волшебную загрузку, поэтому рельсы это скорее диалект руби.

Reply

nivanych December 7 2016, 17:08:29 UTC
Пи-исчисление - строгая основа объектно-ориентированного программирования, да.

Reply

thedeemon December 7 2016, 18:43:41 UTC
Что-то в этом есть, недаром кульминацией ООП стал Эрланг.

Reply

nivanych December 7 2016, 18:56:07 UTC
Ага, именно его и вспомнил (ну там не пи, правда).
Только окромя эрланга, никакие из ОО и близко к этой теме (исчисление процессов в основе языка) не подходили.
Ну и не уверен, можно ли эрланг называть ОО ;-)

Reply

nponeccop December 7 2016, 19:24:46 UTC
У MPI есть стандартные биндинги к С++! И ОО, и message passing в одном флаконе!

Reply

nivanych December 7 2016, 19:29:09 UTC
Даа, это они близко подошли к исчислению процессов в основе языка ;-)

Reply

nponeccop December 8 2016, 01:06:36 UTC
Мне вот кажется, что sound реализации исчислений возможны только в пруверах. Иначе отсутствие необходимости доказывать позволяет им срезать математические углы и получается ерунда.

Мне вот интересно, можно ли нарушить в Эрланге инварианты пи-исчисления. Думаю как два пальца.

Ну и интересно, есть ли industrial unsound provers :)

Reply

nivanych December 8 2016, 09:40:15 UTC
> sound реализации исчислений возможны только в пруверах ( ... )

Reply

nponeccop December 8 2016, 16:56:18 UTC
> industrial unsound provers :)

Unsound - это если доказательство, что код удовлетворяет спецификации, не означает, что код удовлетворяет спецификации.

Например, части доказательства, написанные в субботу вечером, используют технику доказательства "мамой клянусь".

Reply

nponeccop December 8 2016, 16:57:33 UTC
> Нет совести и контроля?

Не совсем. Необходимо, чтобы в военное время синус мог достигать четырёх.

Reply


Leave a comment

Up