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.