Hi Stuart and Rich,
Stuart Halloway <[EMAIL PROTECTED]> writes: > Hi Jose, > > The key determinant of metadata in Clojure is whether the data is > orthogonal to equality. Would two tasks with identical behavior but > different staleness predicates be equal? I would say no, hence a > staleness predicate would be data, not metadata. > Only if you consider the staleness predicate as metadata attached to the build procedure. In my proposal, all behaviour would be metadata, and staleness predicates would be part of that behaviour. I was thinking of a task as a set of generic functions (staleness, build...) acting on data with the right structure. The whole bunch of functions (stored in a map, actually as Rich suggests) would become metadata attached to the data. Something like an alternative to multimethods, if you will. That way, the actual data can be viewed as an entity in and by itself, usable in other contexts. One could also think of it as cheap prototypes (in the Self vein) where method slots are stored as metadata [1]. It could be argued, though, that two objects with different methods should be considered different, and metadata would then be a bad implementation choice. But then again, comparing behaviour (as represented by procedures) is always a pesky business. Thanks to both for chiming in! Cheers, jao Footnotes: [1] Actually, another fun project would be a port of something like Prometheus (http://www.forcix.cx/software/prometheus/prometheus.html) to Clojure [2], perhaps using such a mechanism. [2] BTW, what's the accepted spelling: Clojure or clojure? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---