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

One potential issue is that unlike most other languages, it doesn't create a new scope. But almost nothing in Mathematica introduces a new scope, and Python also uses unscoped "if"s, so it's rarely much of a problem in practice.

But with pattern matching, you almost never need to use "If[]" anyways:

  fib[0] := 0
  fib[1] := 1
  fib[n_ /; n < 2] := Undefined
  fib[n_Integer] := fib[n - 1] + fib[n - 2]

  fib[8]
  (* Output: 21 *)

  fib /@ Range[10]
  (* Output: {1, 1, 2, 3, 5, 8, 13, 21, 34, 55} *)

  fib[-1]
  (* Output: Undefined *)

  fib["a string"]
  (* Output: fib["a string"] *)




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

Search: