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.

Reply via email to