I'm intrigued that Python has some functional constructions in the language.
namekuseijin at gmail.com
Mon May 11 03:56:12 EDT 2009
On May 10, 7:18 pm, Carl Banks <pavlovevide... at gmail.com> wrote:
> On May 10, 12:40 pm, namekuseijin <namekuseijin.nos... at gmail.com>
> theoretical argument like, "everything reduces to a function so it
> doesn't matter what syntax you use," yet people in the real world are
> out there trying to find alternatives because functional languages'
> syntax sucks so bad in general.
It's not that it sucks. More that it's pretty much non-existent.
Yes, many people are very sensitive to such issue -- that is, that
they feel lost without common constructs permeating the code rather
than the fluid and recursive nature of functional programming and its
never-ending flow of userland function calls.
OTOH, I can't help but think part of it has to do with plain text in
your face rather than lots of colorful keywords in your fav editor.
> The reason the OP was asking about separating pure code from impure
> was to see if some subset of Python could be used as a pure functional
> language, that way they could employ Python and its already-much-
> better-than-Haskell's syntax as a pedagogical replacement for Haskell.
ah, probably. Python has replaced Scheme in certain pedagogical
circles too. Scheme was considered a great tool for teaching basic
compsci concepts *precisely* for it's lack of syntax so that students
could concentrate on the concepts and problems at hand rather than
fight against the compiler or have to learn a huge tome of libs and
frameworks before even outputting a single "hello world".
But Java was all the rage in the past few years at introductory
compsci and at least no doubt Python is a blessing compared to that.
Though it too is not without a lot of quirks itself...
> I am sure there are many people who think that even "f a b" is cryptic
> compared to "f(a,b)", but if that's the only issue it wouldn't be that
> big of a deal. It's not the only issue. When a language requires you
> to read and write stuff like "map :: (x -> y) -> f x -> f y"
This is a type annotation and there's nothing similar in Python given
it's typeless nature. Should I call Python's non-existent type
annotations horrible too?
>"f s@ (x:xs) = x:s" then it's going to turn a lot of people off.
def dingle( n, *boz ): return boz[n:-2]
? Sounds perfectly cryptic for the non-initiated too.
More information about the Python-list