Ported some old code for testing atscc2cli: https://github.com/githwxi/ATS-Postiats-contrib/tree/master/projects/SMALL/GameOf24/Clojure
On Friday, July 15, 2016 at 10:59:26 AM UTC-4, gmhwxi wrote: > > For the record, here is the directory for Atscc2clj: > > > https://github.com/githwxi/ATS-Postiats-contrib/tree/master/projects/MEDIUM/CATS-atsccomp/CATS-atscc2clj > > There is a Makefile for generating atscc2clj. Also, some of the running > examples can be found at: > > > https://github.com/githwxi/ATS-Postiats-contrib/tree/master/projects/MEDIUM/CATS-atsccomp/CATS-atscc2clj/TEST > > Clojure uses a rather peculiar way to support optimization of recursive > tail-calls. So far, ATS can only properly handle tail-call > optimization if the call is located not inside the body of a pattern > matching clause. Hopefully, this restriction can be removed > later... > > On Thursday, July 14, 2016 at 5:15:35 PM UTC-4, gmhwxi wrote: >> >> >> I am pleased to announce that >> ATS code can now be compiled to Clojure (and then to JVM). >> >> I include an example as follows. >> >> Obviously, the generated Clojure code is not so-called idiomatic Clojure >> code. >> But it is really a lot safer than manually written Clojure code because >> the source >> of the code passes type-checking in ATS. >> >> ;;fun >> (defn >> fact[arg0] >> ( >> with-local-vars >> [ >> ;;knd = 0 >> tmpret0 nil >> tmp1 nil >> tmp2 nil >> tmp3 nil >> ;;var tmplab, tmplab_clj >> ] ;; with-local-vars >> ;; __patsflab_fact >> (var-set tmp1 (ats2cljpre_gt_int0_int0 arg0 0)) >> (if @tmp1 >> (do >> (var-set tmp3 (ats2cljpre_sub_int0_int0 arg0 1)) >> (var-set tmp2 (fact @tmp3)) >> (ats2cljpre_mul_int0_int0 arg0 @tmp2) >> ) ;; if-then >> (do >> 1 >> ) ;; if-else >> ) >> ) ;; end-of-with-local-vars >> ) ;; end-of-fun >> >> Now I need to figure out how to write apps in Clojure :) After that, we >> should be able to write apps in ATS (via Clojure). >> >> Cheers! >> >> -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-users+unsubscr...@googlegroups.com. To post to this group, send email to ats-lang-users@googlegroups.com. Visit this group at https://groups.google.com/group/ats-lang-users. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/49ef2ebd-ee6d-4c51-bf49-ad396b83bd34%40googlegroups.com.