"Carl Banks" <[EMAIL PROTECTED]> writes: > Douglas Alan wrote: > >> For instance, if Python were to have been designed so that you would >> write: >> >> let myVeryLongVariableName = 3 >> >> I would have preferred this over >> >> myVeryLongVariableName = 3 >> >> With the latter, I have to scan down the line to see that this line is >> in an assignment statement. > > Interesting. I always found that the visual distinctness of non-Lisp > programs made it easier to scan. For example, in Python I could blur my > eyes such that I can't positively identify the letters, but could still > tell an assignment from a function call from a mathemetical expression; > not so easy in LISP where expressions are visually similar.
Hey, well I designed my own programming language "Drawl" that combines the best of both worlds. A sample program in Drawl would look something like this: proc mostApplicableMethods (g args) let appMethods = (filter [lambda (met) (mcProtoMetApp? met lex:args)] (funMets g)) let nMets = (len appMethods) if nMets = 1; appMethods elif nMets = 0; %{} else let retval = {} for i in (range nMets) let m1 = appMethods[i] for m2 in retval + appMethods[i+1..inf] if (isCongruentTo? m2 m1); break else (append list=retval ele=m1) retval This would correspond to the following Python code: def mostApplicableMethods(g, args): appMethods = filter(lambda met: isMcProtoMetApp(met, args), funMets(g)) nMets = len(appMethods) if nMets == 1: return appMethods elif nMets == 0: return () else: retval = [] for i in range(nMets): m1 = appMethods[i] for m2 in retval + appMethods[i+1:]: if isCongruentTo(m2, m1): break else: retval.append(m1) return retval In Drawl all expressions are either functions calls that begin with a "(" and are Lisp-like, or they are mathematical infix expressions. Statements and macros, on the other hand, always begin with an identifier that identifies the statement or macro. The exception to what I just said is that statements and macros can be turned into expressions by surrounding them with square brackets. Too bad I never got around to actually implementing Drawl, though, because we all know that what the world needs right now is another programming language.... |>oug -- http://mail.python.org/mailman/listinfo/python-list