{"id":79,"date":"2004-04-21T23:50:23","date_gmt":"2004-04-21T22:50:23","guid":{"rendered":"http:\/\/www.nobugs.org\/blog\/archives\/2004\/04\/21\/predicate-objects\/"},"modified":"2004-04-21T23:50:23","modified_gmt":"2004-04-21T22:50:23","slug":"predicate-objects","status":"publish","type":"post","link":"https:\/\/www.nobugs.org\/blog\/archives\/2004\/04\/21\/predicate-objects\/","title":{"rendered":"Predicate objects"},"content":{"rendered":"<p>&#8220;Cecil has predicate objects, which allow virtual &#8220;subclasses&#8221; to be defined carrying specialized methods that override their parent&#8217;s methods whenever some boolean predicate over the object is true. In this way, inheritance can be used to model time-varying and\/or state-dependent properties of objects just like permanent properties of objects&#8221; (from the <a href=\"http:\/\/www.cs.washington.edu\/research\/projects\/cecil\/www\/cecil.html\">Cecil<\/a> homepage)<\/p>\n<p>Now, this is kinda interesting because I was thinking about something a bit like this <a href=\"http:\/\/www.nobugs.org\/blog\/archives\/000015.html\">about a year ago<\/a>.  And furthermore, Cecil has a tasty looking feature list &#8211; multimethods, optional polymorphic static typesystem (if you don&#8217;t supply static type information, typechecking is done at runtime), closures, and a Self-like classless object system.<\/p>\n<p>And for something completely different.  Someone stole the front quick-release from my bike, outside work today.  They didn&#8217;t take the whole wheel, which was left neatly in place.  They just removed the quick release mechanism.  How annoyingly strange.  Time to arrange a webcam pointing at my bike ..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Cecil has predicate objects, which allow virtual &#8220;subclasses&#8221; to be defined carrying specialized methods that override their parent&#8217;s methods whenever some boolean predicate over the object is true. In this way, inheritance can be used to model time-varying and\/or state-dependent properties of objects just like permanent properties of objects&#8221; (from the Cecil homepage) Now, this [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-79","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":0,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/posts\/79\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/media?parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/categories?post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nobugs.org\/blog\/wp-json\/wp\/v2\/tags?post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}