Oppimateriaalin copyright © 2009 Arto Wikla.
Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille
opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin,
kuten kaupallisilla tai muilla kursseilla, on kielletty.
(Muutettu viimeksi 31.3.2009)
"Funktionaalista ohjelmointia" Javalla
// Fibonaccin luku
import java.util.Scanner;
public class Fibo {
private static Scanner lukija = new Scanner(System.in);
public static void main(String[] args) {
System.out.println(fibo(lukija.nextInt()));
}
private static int fibo(int i) {
return (i>2) ? fibo(i-1) + fibo(i-2) : 1;
}
}
// Suurin yhteinen tekijä
import java.util.Scanner;
public class Syt {
private static Scanner lukija = new Scanner(System.in);
public static void main(String[] args) {
System.out.println(syt(lukija.nextInt(), lukija.nextInt()));
}
private static int syt(int a, int b) {
return (a==b) ? a
: (a<b) ? syt(a, b-a)
: syt(a-b, b);
}
}
// Toki myös main voi olla rekursiivinen: komentoriviparametrista kolmio
public class Main {
public static void main(String[] args) {
System.out.println(args[0]);
if (args[0].length() > 0) {
args[0] = args[0].substring(0, args[0].length()-1);
main(args);
}
}
}
// Toki myös main voi olla rekursiivinen: komentoriviparametrista kolmio
// (mutta saadaanpa tästäkin vähän "funktionaalisempi" :-)
public class MainB {
public static void main(String[] args) {
System.out.println(args[0]);
if (args[0].length() > 0)
main(new String[] {args[0].substring(0, args[0].length()-1)});
}
}
Takaisin sisältösivulle.