Funktionale Programmierung



  • Hallo,

    die funktionale Programmierung definiert sich ja darüber dass man nicht angibt wie etwas geschehen soll sondern was gemacht werden soll.

    Um das mal richtig zu verstehen. Letztendlich muss dem Computer trotzdem gesagt werden wie es gemacht werden soll. Heisst das intern muss der Compiler für eine funktionale Sprache viel komplexer aufgebaut sein ?



  • Du schreibst ganz normal die Funktion, welche das enthält was gemacht werden soll.

    Verkürztes Beispiel von der Basta 2014:

    static void Main()
    {
       Predicate<int> predicate = (number) => number % 2 == 0;
    
       if(predicate(10))
          // do something...
    }
    

    Wichtig bei der Funktionalen Programmierung ist nur, dass keine Änderungen an irgendwelchem Zeugs gemacht werden die nicht im Funktionsscope liegen. Auf C# übertragen bedeuted das, dass folgendes ungültig ist:

    static bool isEven = false;
    
    static void Main()
    {
       Action<int> func = (number) => isEven = number % 2 == 0;
       func(10);
       System.Console.WriteLine(isEven);  
    }
    

    Da C# jedoch keine rein funktionale Sprache ist, lässt der C# compiler das durchgehen.


Log in to reply