Thread overview
ATS -- unleashing the potential of types!
Oct 29, 2008
Pablo Ripolles
Oct 29, 2008
bearophile
Oct 29, 2008
Ary Borenszweig
Oct 29, 2008
KennyTM~
Oct 29, 2008
Sergey Gromov
October 29, 2008
Hello all!

I assume many of you already know about ATS...

I'd like to know your thoughts about it!

Some interesting references are:
http://www.ats-lang.org/
http://www.reddit.com/r/programming/comments/72hmw/language_shootout_ats_is_the_new_top_gunslinger/

it is damn fast! http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all

Cheers!


October 29, 2008
Pablo Ripolles:
> I'd like to know your thoughts about it!

Its syntax is ugly, long and unreadable. So I don't think people will use it.

Bye,
bearophile
October 29, 2008
bearophile wrote:
> Pablo Ripolles:
>> I'd like to know your thoughts about it!
> 
> Its syntax is ugly, long and unreadable. So I don't think people will use it.

I thought exactly the same. The syntax highlighting they recommend is pretty awful too, everything's red! For example this:

print_string ("space: fall straight");

(in http://www.ats-lang.org/EXAMPLE/MISC/tetrix_dats.html )

is all red, except for the parenthesis and the semicolon. Why not distinguish the strings with another color? Also, method invocations should be black.
October 29, 2008
Pablo Ripolles wrote:
> Hello all!
> 
> I assume many of you already know about ATS...
> 
> I'd like to know your thoughts about it!
> 
> Some interesting references are:
> http://www.ats-lang.org/
> http://www.reddit.com/r/programming/comments/72hmw/language_shootout_ats_is_the_new_top_gunslinger/
> 
> it is damn fast!
> http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all
> 
> Cheers!
> 
> 

fun fib4 {n:nat} (x: int n): [r:int] (FIB (n, r) | int r) = let
  fun loop {i,j:nat | i+j == n} {r0,r1:int}
    (pf0: FIB (j, r0), pf1: FIB (j+1, r1) | x: int i, a0: int r0, a1: int r1)
    : [r:int] (FIB (n, r) | int r) =
    if x > 0 then loop (pf1, FIB_ind (pf0, pf1) | x-1, a1, a0 + a1)
    else (pf0 | a0)
in
  loop (FIB_bas_0 (), FIB_bas_1 () | x, 0, 1)
end // end of [fib4]


No thanks, I'd rather program in assembly. :(
October 29, 2008
Wed, 29 Oct 2008 09:29:12 -0400, Pablo Ripolles wrote:
> I assume many of you already know about ATS...
> 
> I'd like to know your thoughts about it!
> 
> Some interesting references are:
> http://www.ats-lang.org/
> http://www.reddit.com/r/programming/comments/72hmw/language_shootout_ats_is_the_new_top_gunslinger/
> 
> it is damn fast! http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all

The syntax is too alien for me.  When I see things like these, I just give up:

fn iter {n:nat}
  (n: int n, f: !natLt n -<cloptr1> void): void = let

I simply don't get it.  It may help you that I tried to learn Haskell several times and didn't manage it, for the same reason, until I found this:

http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html

After reading this short document I was finally able to read and understand Haskell programs.  Throwing together something like this for ATS could help people like me to comprehend the language with much less effort.