Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ruby is duck-typed, so it is advantageous to write code and tests that are not tied to classes at all.

http://www.poodr.com/ goes in-depth about this.



Well, the same kind of contracts approach could be used to enforce a duck-typed set of behaviors:

  [:quacks], [:barks] => Maybe[:flies]
Some Rubyists get pedantic about duck typing. It's just a tool to design good systems, not an article of faith.


Yeah the contract here is a form of nominative type checking, it could just as well be structural.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: