So what about it? Is it the next big thing (for respectable programmers such as lisp was (and seems to still be) and C)?
Name:
Anonymous2014-06-12 15:45
It is simply too hard for 95% of programmers, that's what it is.
Name:
Anonymous2014-06-12 15:48
All decent languages have functional names that describe them, not meaningless fluff. E.g. Prolog is "programming in logic", Lisp is "list processing". By that criterion, ATS ("applied type system") is definitely decent.
Name:
Anonymous2014-06-12 15:53
This is how you transpose a matrix in ATS:
// extern fun{a:t0p} matrixref_transpose {n:nat} ( M: matrixref (a, n, n), n: size_t (n) ) : void // end of [matrixref_transpose] // implement{a} matrixref_transpose {n} (M, n) = let // macdef mget (i, j) = matrixref_get_at (M, ,(i), n, ,(j)) macdef mset (i, j, x) = matrixref_set_at (M, ,(i), n, ,(j), ,(x)) // fun loop {i,j:nat | i < j; j <= n } .<n-i,n-j>. ( i: size_t (i), j: size_t (j) ) : void = if j < n then let val x = mget(i, j) val () = mset(i, j, mget(j, i)) val () = mset(j, i, x) in loop (i, j+1) end else let val i1 = succ (i) in if i1 < n then loop (i1, succ(i1)) else () end // end of [if] // in if n > 0 then loop (i2sz(0), i2sz(1)) else () end // end of [matrixref_transpose]
I get the impression ATS forces you to work out by hand most of what Rust is designed to solve automatically. That, and the additional features it provides in terms of safety checks are not actually worth their own weight in productivity costs. Basically, it's a nice try, but it hasn't caught on for a reason.
I get the impression C forces you to work out by hand most of what Java is designed to solve automatically. That, and the additional features it provides in terms of no garbage collection are not actually worth their own weight in productivity costs. Basically, it's a nice try, but it hasn't caught on for a reason.
>>5 Fucking enterprise whore. We are talking about respectable programmers (either self-employed, work in academia/a lab, or are loners) not cubicle monkeys.
>>29 Then you are insane. Take your fucking pills, theistard.
Name:
Anonymous2014-06-17 21:01
>>29 I know the feeling, but it's impossible to prove the need for those programs. Any proof would contain the equivalent of a decidability proof for the program.
I guess that proof could be more sophisticated than the set of predetermined rules, but I think the way to go about that would be to change the rules, then write your program according to them. If you're interested, try reading up on Coq.
We call our analysis near-concrete interpretation (NCI), since we intend to cut as close to the actual program execution (the concrete interpretation) as possible, while retaining decidability. Both in name and in spirit, the approach is close to abstract interpretation. Compared to the existing abstract interpretation literature, NCI applies to fully higher-order programs, models non-trivial heap structures including recursive heap strucures, and incorporates path sensitivity into a higher-order context.