zlacker

[parent] [thread] 0 comments
1. gucci-+(OP)[view] [source] 2025-12-07 04:20:37
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"] *)
[go to top]