I have added a second #ATS implementation--this one based closely on the #StandardML, to aid people in comparing the two languages:
Continued fraction/Arithmetic/G(matrix ng, continued fraction n1, continued fraction n2) - Rosetta Code https://rosettacode.org/wiki/Continued_fraction/Arithmetic/G(matrix_ng,_continued_fraction_n1,_continued_fraction_n2)#Using_multiple_precision_numbers
I also demonstrate having the program broken into multiple files. Some things, which you might not expect to, have to be done "manually" in #ATS2 ...
#ats #standardml #ats2 #atslang #sml
I am really getting the masochistic urge make #ATS2 self-hosting, now that it is a frozen language.
I mean, it’s written in #ATS1, and that’s not a very different language. It’s mostly ‘ATS without the template system’.
(The ATS2 prelude is somewhat buggy but my ats2-xprelude package kind of makes that not-much-of-a-problem. This is because, unlike in some languages that were misguidedly and foolishly designed, shadowing is both allowed and very flexible.)
こんなの思い付かないよ。。。 #ATS2 datavtype shared_ (a:vt@ype) = {l:addr} SHARED of (a@l | spin1_vt, int, ptr l)
Hongwei's quates #ATS2 https://github.com/master-q/masterq-docs/tree/master/quotes/hongwei
.oO(本音をいうとTLA+でモデル作って #ATS2 でガッツリ誰得ロボット実装を作って、ソフトフレームワークは譲渡条項有りのAGPLv3でオープンソース化したいです、、、)
#RefinementTypes についても突っ込んだ理解がないんですが、 #ATS2 はRefinementTypesの一種だと思っていて正しいのでしょうか。。。例が散乱しすぎていて #それって何? というところが理解できないでいます。。。