Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What is the language?

  numbers.filter( _ % 2 == 0 ).map( _ / 2 )
Zen of Python doesn't contain any lambdas (the link from the grandparent http://www.python.org/dev/peps/pep-0020/ ). List Comprehensions are 10 years old http://www.python.org/dev/peps/pep-0202/

How do you write:

  lambda x, y=1: x+y
  lambda *args: reduce(lcm, args)
  lambda **kwargs: kwargs.get('a') or kwargs.get('b')

  def lcm(a, b):
      return a*b // gcd(a, b)

  def gcd(a, b):
      while b:
          a, b = b, a % b
      return a


The link for the thread: http://artifex.org/~hblanks/talks/2011/pep20_by_example.py.t...

It does indeed mention a lambda in the very first example, if only as a competition with list comprehension syntax. But even Python's list comprehensions look a little dated now.


Python's list comprehension is actually inspired by Haskell (or was it the other way around)?

What do you mean by dated? What new ideas have come up for List comprehension syntax?

(I agree that Lambda should be call fun or fn or \. An implicit _ might also work, though that's somewhat against Python's spirit---c.f. the explicit self in methods.)


Like most good ideas, it came from Haskell :)

The part that bothers me about the list comprehension section is that conflating list comprehension and lambda. Is it telling me that list comprehension is better than map/filter or better than lambda? I don't know. Quiet honestly, in many situations I find:

halves_evens = lambda nums : [i/2 for i in nums if nums % 2 == 0]

to be the cleanest.


scala.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: