This idea shows up early in Clojure text books. This concept comes to mind rather quickly:
(def and_list (ArrayList.) ... ) But, in the end it is an ArrayList which has an interface-defined behavior, e.g. boolean eval(); (from Java) Thus far, in a tiny VSCode project, I defined (definterface IEvaluable (^boolean runIt [])) and defined a simple object which will return false and one which will return true. I'll use those to populate a conjunctive and a disjunctive list. Now I must define a list object which runs that interface. Still digging and experimenting, but, on the surface, this approach appears to be possible. >From above, as a sketch: (def and_list (ArrayList.) IEvaluable (runIt [this] <some code to conditionally walk the list>)) ) Meanwhile, I found this https://clojuredocs.org/clojure.core/proxy-super which is now on the table to explore. Many thanks Jack On Fri, Aug 14, 2020 at 3:41 AM Jesús Gómez <jgo...@gmail.com> wrote: > Why not to Java-Interop with that Interface and those Classes directly, > the same way you use them in Java? > > El jue., 13 ago. 2020 a las 22:54, Jack Park (<jackp...@topicquests.org>) > escribió: > >> The problem: >> >> In Java, I have an interface *IInferrable* which is basically boolean >> eval(); >> >> Any Java object which extends IInferrable, no matter what it is, will >> answer to eval() and return a boolean. >> The idea lies at the heart of an inference engine. >> >> But, I also define a class *AndList* which implements IInferrable and >> extends java.util.ArrayList<Inferrable> >> >> So, AndList, and its sibling OrList behave just like a List object, but >> also will answer to eval() by running the collection and dealing with what >> each element returns when it, too, is eval()'d. >> >> I'd really love to discover how to pull that off in Clojure. >> >> Many thanks in advance. -Jack >> >> -- >> 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 >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/clojure/3e2ffc86-0e4f-4c0c-92c3-58e0848d5ba7o%40googlegroups.com >> <https://groups.google.com/d/msgid/clojure/3e2ffc86-0e4f-4c0c-92c3-58e0848d5ba7o%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- > 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 > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/clojure/CAO9z-97N15E_17FRkDN_gbneXfkMkrS615RV5UwGMf3%2Bos%3DSLQ%40mail.gmail.com > <https://groups.google.com/d/msgid/clojure/CAO9z-97N15E_17FRkDN_gbneXfkMkrS615RV5UwGMf3%2Bos%3DSLQ%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/CAH6s0fxiGQiZ4gUgEs42ScKWmxhQDtEd_N8bfgcbr2TObu7gww%40mail.gmail.com.