Q: Several top US universities have been using LISP for AI research since the 1970s. What have they achieved?
A: Nothing that can't be done in Haskell during a 5 minute coffee break.
LISP got rid of types almost 40 years ago. After decades, some realized types sucked (Python, Ruby), while others still haven't got their (human_head_t) heads out of their (human_ass_t) asses.
Name:
Anonymous2007-04-28 19:00 ID:XIh467Hl
>>3
Wait, that was very poorly worded. Static typing is what sucks. Types still exist, but you don't deal with them unless shit breaks. As long as it works, it works. If you aren't stupid, you never have to deal with types or type conflicts.
Name:
Anonymous2007-04-28 22:19 ID:7hEyiGDY
to anyone thinking of posting in this thread,
read a book on type theory or STFU.
>>1
Unnecessary type annotations especially in a non type-safe language like C is a fucking waste of time and a joke.
Languages which support type inferrence, (like SML for example) and also have type safety are of godly power.
Dynamic languages with runtime safety are perfect for writing elegant and readable code in, letting the compiler do micro-optimisation leaving you to concentrate on algorithms.
Types are great for proving things about your program. If Haskell was analyzable (aka not lazy) it might actually perform well.
Name:
Anonymous2007-04-30 13:38 ID:QnpkXMwq
>>12
You can always force when you need to. I like my Haskell lazy by default, thankyouverymuch.
Name:
Anonymous2007-04-30 16:15 ID:UFFAvqYB
One word, forced strictness of evaluation, thread over.
Name:
Anonymous2007-04-30 16:37 ID:5grQrMMc
Unnecessary type annotations especially in a non type-safe language like C is a fucking waste of time and a joke.
You're forgetting that C is assembly with macros.
I really can't fathom how you'd achieve that without type annotations. The best you can hope for is to add type inference.
Name:
Anonymous2007-04-30 16:38 ID:zYr2HfdV
>>13
as soon as you force it to be non-lazy 99.9999999% of programs crash
>>15
Assembly doesn't have type annotations. Does the `macros' part imply including type annotations?
Name:
Anonymous2007-04-30 18:08 ID:5grQrMMc
>>18
Sure it does. Look at the canonical example:
.data
msg db "Hello world", 13, 10, 0
That's the explicit part. Now, what size register is ECX? What does rep movsw do? Why bother with LEA or stack frame offsets? A lot of assemblers include syntactic sugar for structs too.
I'd like to anyone write a driver without any type annotations. C needs it because of the level it operates at.
>>19
By type annotations do you mean ``I hope the value I get is an integer''? If so, our definitions don't match.
Name:
Anonymous2007-04-30 18:31 ID:5grQrMMc
>>20
Oh? So you disagree that db/dw/byte/word/whatever is an annotation? Fair enough.
Let's get back to C. How are you planning to correctly fill out a struct when passing data to a graphics card or a network stack without type annotations? C will somehow automagically pick the correct opcodes, padding, and alignment?