4 ms·
fact = lambda n: 1 if n <= 1 else n*fact(n-1) or, for that matter: def fact(n): return 1 if n <= 1 else n*fact(n-1)
by jules 16y ago
fact = lambda n: 1 if n <= 1 else n*fact(n-1)
or, for that matter:
def fact(n): return 1 if n <= 1 else n*fact(n-1)
- Goladus 16y agoThe point was to demonstrate that the one-liner fits easily as an argument to 'python -c' from the command-line. You could also point out "import _if;" probably won't let me call "_if()", but again that wasn't really the point. Also, you'll need to know the version of python: $ python Python 2.4.3 (#1, Dec 11 2006, 11:39:03) [GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> fact = lambda n: 1 if n <= 1 else n*fact(n-1) File "<stdin>", line 1 fact = lambda n: 1 if n <= 1 else n*fact(n-1) ^ SyntaxError: invalid syntax >>>
- jules 16y agoI understand you just copied the same snippet for your example. I'm just pointing out that Python does support that kind of if natively, so that people won't think that it doesn't.