Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m323:learningunits:lu03:firstclassfunctions [2024/10/23 11:45] – [LU03d - First-Class Functions] kmaurizimodul:m323:learningunits:lu03:firstclassfunctions [2026/08/25 11:56] (aktuell) – Beispiel: unterschiedliche Ergebnisse statt zweimal 7 admin
Zeile 1: Zeile 1:
 ====== LU03d - First-Class Functions ====== ====== LU03d - First-Class Functions ======
  
-In der funktionalen Programmierung sind Funktionen First-Class Citizens auf Deutsch "Bürger erster Klasse". Dies bedeutet, dass Funktionen genauso behandelt werden wie andere Werte wie Zahlen, Strings oder Listen. Sie können als Argumente an andere Funktionen übergeben, von Funktionen zurückgegeben und in Variablen gespeichert werden.+In der funktionalen Programmierung sind Funktionen First-Class Citizens auf Deutsch **Bürger erster Klasse**. Dies bedeutet, dass Funktionen genauso behandelt werden wie andere Werte wie Zahlen, Strings oder Listen. Sie können als Argumente an andere Funktionen übergeben, von Funktionen zurückgegeben und in Variablen gespeichert werden.
  
 === Definition von First-Class Functions === === Definition von First-Class Functions ===
Zeile 26: Zeile 26:
     print(greeting('Alice'))  # Ausgabe: Hello, Alice!     print(greeting('Alice'))  # Ausgabe: Hello, Alice!
 </code> </code>
 +
 +<WRAP center round tip 60%>
 +Beachten Sie die fehlenden Klammern bei ''greeting = say_hello''. Mit Klammern (''say_hello()'') würde die Funktion //aufgerufen// und ihr Ergebnis gespeichert. Ohne Klammern wird die Funktion //selbst// zugewiesen – ''greeting'' und ''say_hello'' sind danach zwei Namen für dasselbe Funktionsobjekt.
 +</WRAP>
  
 ==== Funktionen als Argumente Übergeben ==== ==== Funktionen als Argumente Übergeben ====
Zeile 43: Zeile 47:
  
 if __name__ == '__main__': if __name__ == '__main__':
-    print(operate(add, 3, 4))  # Ausgabe: 7+    print(operate(add, 3, 5))  # Ausgabe: 8
     print(operate(subtract, 10, 3))  # Ausgabe: 7     print(operate(subtract, 10, 3))  # Ausgabe: 7
 </code> </code>
 +
 +Derselbe Aufruf von ''operate'' liefert unterschiedliche Ergebnisse – je nachdem, welche Funktion übergeben wurde.
  
 ==== Funktionen von anderen Funktionen zurückgeben lassen ==== ==== Funktionen von anderen Funktionen zurückgeben lassen ====
Zeile 80: Zeile 86:
  
 ---- ----
-{{tag>M323-LU03}}+{{tag>M323-LU03 M323-C2B M323-C2I}}
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi  [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi 
 +
  • modul/m323/learningunits/lu03/firstclassfunctions.1729676752.txt.gz
  • Zuletzt geändert: 2024/10/23 11:45
  • von kmaurizi