>that feel when I have to use DrRacket for my first Computer Science course.
WHY?
Name:
Anonymous2012-01-05 20:24
What's wrong with DrRacket? I tried it once and it was kind of cool, complete with a running man icon at the lower-right corner. It is also capable of inserting random crap such as fractals and UML diagrams into the code and REPL buffers, which is kind of great (Emacs can do this, too, but it never does).
Name:
Anonymous2012-01-05 20:52
The running man icon isn't at the lower-right corner anymore...
I hate it because it's not like C++, Galaxy, or vJass.
It's a total mindfuck for me.
(define x = 3)
f(* g x)
I'm not even sure if I'm writing it right here, but it's hard for me to understand wtf is going on with these parameters n' shit.
Also I've never seen things written (* 2 3) or something like that before.
(* 2 (+ 1 (- 3 (/ 5 2))))
is like a retarded version of
((((5 / 2) - 3 ) + 1) * 2)
which (simply ignoring bimdas) would otherwise just be 5 / 2 - 3 + 1 * 2
[Keep it simple stupid]
Name:
Anonymous2012-01-06 5:30
Why do people still use * for times and / for division? It's not the 50's anymore. APL (1964) and ALGOL 68 (1968) used the real symbols. (2×5)+(1÷4) is valid ALGOL 68 and APL code. With Unicode, there's even less of an excuse today.
Name:
Anonymous2012-01-06 5:35
>>18
These characters are not printed on standard keyboard layouts which means a little bit of extra work is needed every time one would use such characters. They really ought to be in standard layouts.
The point behind prefix notation is that it keep the rules simple and consistent, which helps when extending the language with macros and such. * / + - are treated just like normal functions.
In lisp, the first element between two parens is *always* a function and the remaining ones are *always* arguments to that function. If you allowed infix, then you'd suddenly have this really complicated exception rule that would make the language less malleable.
>>33
And not only that. The syntax of lisp is more or less a one-to-one representation of its own abstract syntax tree. Any experienced programmer learns to see past the syntax of any language and knows that a compiler or interpreter transforms the source code into an AST anyway, which will look a lot like lisp, only the set of functions and values will match the semantics of the source language.
Syntax is just eye-candy.
Name:
Anonymous2012-01-07 6:20
And not only that. The syntax of asm is more or less a one-to-one representation of its own binary representation. Any experienced programmer learns to see past the syntax of any language and knows that a compiler or interpreter transforms the source code into string of opcodes anyway, which will look a lot like asm, only the set of functions and values will match the semantics of the source language.
>>37
Do let me know when you finish it. I'm not very happy with the available ones. Enough to write something of my own, but I can't say I'm entirely happy with mine either.
>>37
Since you don't have to be source-compatible with VisiCalc, could you please use more sensible names for the registers. ? = a, c, d, b
r?x = ?x/e?x/r?x (full size, depending on mode)
r?q = r?x
r?d (or r?l) = e?x
r?w = ?x
r?b = ?l
r?h = ?h
? = s, b
?p = ?p/e?p/r?p (full size, depending on mode)
Name:
Anonymous2012-01-07 21:58
>>32 >>33 >>34
Ahhhh just trying to understand what you're going on about is making my head asplode and I still have shit-tons of textbook reading to go through that is also mindnumbing/mindfucking me.
>>39
So, ral/rab raw rad ra/raq/rax
...
rdil/rdib rdiw rdid rdi/rdiq
...
r8l/r8b r8w r8d r8/r8q
...
?
I don't know, I'm all for a more consistent naming, but then why don't we just start from r1[lbwdq]? rax = r0, rcx = r1, rdx = r2, rbx = r3, rsp = r4, rbp = r5, rsi = r6, rdi = r7, r8, ..., r15
Or, just rename rn to rn-k for k = 7 or 8, and rename al/ax/eax to ral/raw/rad etc.
>>41
It's possible, but remember that some registers are special.
Name:
Anonymous2012-01-08 8:38
>>42
Then the latter renaming should do no harm (r8 -> r1, etc).
Bump over shit threads.
Name:
Anonymous2012-01-08 8:52
>>41
So you want to break backward compatibility for an inane naming scheme which basically tells you nothing about the registers you're using? How could you possibly defend that? People know what rax is, people know what eax, ax, al and ah is as well, they know what rsi and rsp is used for, why would change that to some retarded shit like r[1-8]?
Tell me, do you consider yourself a competent programmer?
>>44
I broke backwards compatibility the exact moment I choose to use neither Intel nor AT&T syntax, and backwards compatibility is the root of all evil anyway.
You also can't use the ah, bh, ch, dh registers in 64-bit mode, and I hate the r[8..15] registers' name, since there are no logical r[0..7] registers.
Today, the x86 registers are all general purpose, only some old opcodes treat them specially, which is why renaming rax to r0 would be stupid, but renaming r[8..15] would make no harm whatsoever.
>>44 No need to get angry, it's fucking nothing. >>41 You should hear 44-san.
These “inconsistent” letters indicate something about the registers, which is useful on CISC architectures (like x86), where some instructions don't treat them as general registers.
See http://www.eecg.toronto.edu/~amza/www.mindsec.com/files/x86regs.html