Ero sivun ”Funktionaalinen ohjelmointi” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
Ipr1 (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Ipr1 (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Rivi 28:
== Esimerkkejä ==
Esimerkeissä käytetään matematiikan tapaista pseudokoodia. Funktion parametreja ei kuitenkaan eroteta sulkeilla tai pilkuilla juuri missään funktionaalisessa kielessä, joten func(''x'') = 2''x'' ilmaistaan seuraavasti:
<pre>
func x = 2*x
</pre>
 
=== Fibonaccin luvut ===
Funktionaalisissa ohjelmointikielissä [[Hei maailma -ohjelma]]n vastine on funktio, joka laskee [[Fibonaccin luku]]ja:
<pre>
fib n = 0, kun n = 0
1, kun n = 1
fib (n&minus;1) + fib (n&minus;2), kun n > 1
</pre>
Yllä olevasta käy heti ilmi, että ''fib'' ei ole määritelty, jos ''n'' < 0.
 
=== Funktion määritteleminen toisten funktioiden avulla ===
Leikitään, että voidaan käyttää vain kahta funktiota:
<pre>
plusyksi x = x + 1
miinusyksi x = x - 1
</pre>
Niinpä funktio, joka lisää parametriinsa kaksi, voidaan määritellä edellisen avulla:
<pre>
pluskaksi x = plusyksi (plusyksi x)
</pre>
Funktio, joka lisää yhteen parametrit ''x'' ja ''y'', onnistuu rekursion avulla:
<pre>
plus x y = x, kun y = 0
plus (plusyksi x) (miinusyksi y), kun y > 0
</pre>
 
== Funktionaalinen ohjelmointi opetuksessa ==