Python syntax in Lisp and Scheme
Alex Martelli
aleax at aleax.it
Thu Oct 9 12:13:54 EDT 2003
More information about the Python-list mailing list
Thu Oct 9 12:13:54 EDT 2003
- Previous message (by thread): Python syntax in Lisp and Scheme
- Next message (by thread): Python syntax in Lisp and Scheme
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Doug Tolton wrote: > David Mertz wrote: > >> There's something pathological in my posting untested code. One more >> try: >> >> def categorize_jointly(preds, it): >> results = [[] for _ in preds] >> for x in it: >> results[all(preds)(x)].append(x) >> return results >> >> |Come on. Haskell has a nice type system. Python is an application of >> |Greespun's Tenth Rule of programming. >> >> Btw. This is more nonsense. HOFs are not a special Lisp thing. Haskell >> does them much better, for example... and so does Python. >> > What is your basis for that statement? I personally like the way Lisp > does it much better, and I program in both Lisp and Python. With Python > it's not immediately apparent if you are passing in a simple variable > or a HOF. Whereas in lisp with #' it's immediately obvious that you are > receiving or sending a HOF that will potentially alter how the call > operates. > > IMO, that syntax is far clearner. I think it's about a single namespace (Scheme, Python, Haskell, ...) vs CLisp's dual namespaces. People get used pretty fast to having every object (whether callable or not) "first-class" -- e.g. sendable as an argument without any need for stropping or the like. To you, HOFs may feel like special cases needing special syntax that toots horns and rings bells; to people used to passing functions as arguments as a way of living, that's as syntactically obtrusive as, say, O'CAML's mandate that you use +. and not plain + when summing floats rather than ints (it's been a couple years since I last studied O'CAML's, so for all I know they may have changed that now, but, it IS in the book;-). No doubt they could make a case that float arithmetic has potentially weird and surprising characteristics and it's a great idea to make it "immediately obvious" that's it in use -- and/or the case that this allows stronger type inference and checking than SML's or Haskell's use of plain + here allows. Rationalization is among the main uses for the human brain, after all -- whatever feature one likes because of habit, one can make SOME case or other for;-). Alex
- Previous message (by thread): Python syntax in Lisp and Scheme
- Next message (by thread): Python syntax in Lisp and Scheme
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list