Anonimna funkcija

Iz MaFiRaWiki

(Preusmerjeno iz Mathematica/Function)

Anonimna funkcija ni zvrst funkcije, ampak samo poseben zapis funkcije, pri katerem funkcije ne poimenujemo — funkcija ostane anonimna. Funkcija, ki ni anonimna, je imenovana. Poznamo več možnih zapisov. Naslednji primeri vsi pomenijo "funkcija, ki preslika x v x² + 1":

  • matematični zapis: x \mapsto x^2 + 1
  • λ-račun: λx. x²+1
  • Mathematica: Function[{x},x^2+1] ali (#^2+1)&
  • Ocaml: fun x -> x * x + 1
  • Perl: sub { my $x = shift; return $x * $x + 1; }
  • Python: lambda x: x^2 + 1

Seveda lahko zapišemo tudi funkcijo večih argumentov, na primer (x,y) \mapsto x^2 + y + 1, Function[{x,y}, x*x+y+1] ali fun x y -> x*x+y+1.

Anonimne funkcije v Mathematici

V Mathematici se anonimne funkcije imenujejo tudi čiste funkcije. Zapis, ki uporablja # in & je sicer krajši, a bolj nepregleden. Če uporabljamo krajši zapis, so tudi argumenti anonimni in se imenujejo po vrsti #1, #2, ..., ne smemo pa pozabiti na & na koncu zapisa. Navadno obdamo zapis anonimne funkcije z navadnimi oklepaji (...)&. Pri tem je #1 sinonim za #. Argumente čisti funkciji podamo obdane v oglatih oklepajih, na primer (...)&[a,b,...].

Nekaj primerov anonimnih funkcij v Mathematici:

  • (2#+3)& funkcija, ki množi z 2 in prišteje tri
  • If[#1==0,1,#1*#0[#1-1]]& funkcija, ki sprejme n in vrne fakulteto n!. Tu se #0 sklicuje na funkcijo samo. Torej je to zapis anonimne funkcije, ki pa ni zelo pregleden.
  • Sqrt[#1^2+#2^2]& funkcija, ki sprejme par števil a, b in vrne dolžino hipotenuze pravokotnega trikotnika s katetama a in b. Primer uporabe: Sqrt[#1^2 + #2^2] & [3, 4] vrne 5.
  • (2x+3)& je konstantna funkcija, ki vedno vrne vrednost 2x+3.
  • f[x_]:=2x+3 je imenovana funkcija, saj ima ime f.

Glej tudi

Osebna orodja