Kann jemand eine gute Beschreibung geben, was ein Lambda ist? Wir haben ein Tag für sie und sie sind auf die Geheimnisse von C# Frage, aber ich muss noch eine gute Definition und Erklärung von dem finden, was sie an erster Stelle sind.Was ist ein Lambda?
Antwort
Verschlüssen, Lambda-Ausdrücke und anonyme Funktionen sind nicht unbedingt die gleiche Sache.
Eine anonyme Funktion ist eine Funktion, die keinen eigenen Namen hat (oder zumindest braucht).
Ein Abschluss ist eine Funktion, die auf Variablen zugreifen kann, die sich in ihrem lexikalischen Gültigkeitsbereich befanden, als sie deklariert wurden, selbst nachdem sie aus des Geltungsbereichs gefallen sind. Anonyme Funktionen müssen nicht unbedingt Schließungen sein, aber sie sind in den meisten Sprachen und werden weniger nützlich, wenn sie es nicht sind.
Ein Lambda ist nicht so gut definiert, so weit die Informatik geht. Viele Sprachen verwenden diesen Begriff nicht einmal. Stattdessen nennen sie sie nur Schließungen oder Anon-Funktionen oder erfinden ihre eigene Terminologie. In LISP ist ein Lambda nur eine anonyme Funktion. In Python ist ein Lambda eine anonyme Funktion, die speziell auf einen einzelnen Ausdruck beschränkt ist. alles andere, und Sie brauchen eine benannte Funktion. Lambdas sind Schließungen in beiden Sprachen.
der Begriff könnte Lambda-Kalkül implizieren http://en.wikipedia.org/wiki/Lambda_calculus –
Wow ich mit ich hatte mehr als ein upvote, um diese Frage zu geben. Ich habe so viele technische Antworten in der Terminologie gesehen, aber diese ist kurz und bringt es sofort auf den Punkt. –
+1 für den Begriff "close over" nicht verwenden, um eine Schließung zu definieren, als ob es es klarer macht. – Daniel
aus wikipedia abgeschoren http://en.wikipedia.org/wiki/Lambda#Lambda.2C_the_word
In Programmiersprachen wie Lisp und Python, Lambda ist ein Operator zu bezeichnen anonyme Funktionen oder Schließungen, folgende Lambda-Kalkül Verwendung benutzt.
Ich denke, Sie haben diese Zeile gemeint: In Programmiersprachen wie Lisp und Python ist Lambda ein Operator, der anonyme Funktionen oder Schließungen nach der Verwendung von Lambda-Berechnungen verwendet. Ich hatte den Artikel bereits gescannt, aber verpasst. – Fred
Es handelt sich nur um eine anonyme Funktion, die inline deklariert wird und normalerweise einem Delegaten zugewiesen wird, wenn Sie keine vollwertige Funktion schreiben möchten. In Sprachen wie lisp/scheme werden sie oft als Funktionsparameter ziemlich frei herumgereicht, aber das Idiom in C# findet in der Regel lambdas, die nur für die langsame Auswertung von Funktionen verwendet werden, wie in linq oder für die Verarbeitung von Code ein bisschen terser.
"Lambda" bezieht sich auf die Lambda Calculus oder auf einen bestimmten Lambda-Ausdruck. Lambda-Kalkül ist im Grunde ein Zweig der Logik und Mathematik, die sich mit Funktionen befasst, und ist die Grundlage von functional programming languages.
~ William Riley-Land
Auch als Verschlüsse oder anonyme Funktionen .. fand ich die beste Beschreibung here. Grundsätzlich Inline-Block von Code, der als Argument an eine Funktion übergeben werden kann.
Es gibt nicht so etwas wie 'ein Lambda' in der Programmierung. Dies hängt von der Sprache usw. ab.
Kurz gesagt, normalerweise verwendet eine Sprache, die 'lambdas' hat, den Begriff für anonyme Funktionen oder in einigen Fällen für Schließungen. Wie so, in Ruby:
f = lambda { return "this is a function with no name" }
puts f.call
Als Antwort auf die vorherigen Antworten:
-Das Wichtigste anonymen Funktionen ist nicht, dass sie keinen Namen benötigen.
- Gehäuse sind ein separates Konzept.
- Ein gigantischer Wikipedia-Artikel macht das nicht klarer.
Hier ist meine Antwort in 3 Teilen:
1.Ein Lambda ist eine Funktion, die auch ein Ausdruck ist. Das ist das Wichtigste.
2. Viele Sprachen, die sogenannte "lambdas" implementieren, fügen einige syntaktischen Zucker hinzu, um das Schreiben dieser kurzen Funktionen einfacher und schneller zu machen, aber dies ist nicht erforderlich.
3. Einige Sprachen erfordern möglicherweise, dass ein Lambda keine Nebenwirkungen hat. Das wäre ein reineres Lambda im funktionalen Sinne.
Wenn eine Funktion ein Ausdruck ist, ist sie ein "First-Class-Bürger" innerhalb der Sprache. Ich kann damit alle wichtigen Dinge tun:
x = lambda(){ return "Hello World"; }
doit(1, 2, lambda(a,b){ return a > b; }, 3)
x = (lambda(a){ return a+1; }) + 5 // type error, not syntax error
(lambda(a,b){ print(a); log(b); })(1, 2) //() is valid operator here
- 1. Wann ist ein Lambda trivial?
- 2. Was ist "Lambda-Bindung" in Python?
- 3. Was ist der Vorteil von "Lambda-Ausdrücken"?
- 4. Was ist der Typ einer Lambda-Funktion?
- 5. Ist ein Lambda-Ausdruck von diesem möglich?
- 6. Bereiche in Schienen. Ist das ein Lambda?
- 7. Wie ist std :: function für ein Lambda
- 8. Was Schlüssel = Lambda
- 9. Bestimmen, ob ein Parameter/eine Variable ein ("is_a?") Lambda ist?
- 10. Boost Lambda/Phoenix - wie Lambda, die ein anderes Lambda zurückgibt?
- 11. Was ist ein PHP-Framework und was ist ein guter?
- 12. Google AMP: Was ist ein Layout? Was ist ein Behälter?
- 13. Was ist der Lambda-Ausdruck mit Unity Resolver
- 14. Was ist los mit diesem Pandas Dataframe.apply (Lambda)?
- 15. Was ist interessanter oder leistungsfähiger: Curry, Mercury oder Lambda-Prolog?
- 16. Was ist ein Protokoll?
- 17. Was ist ein Objekt?
- 18. Was ist ein "Pinsel"?
- 19. Was ist ein UIViewController
- 20. Was ist ein Kontextwechsel?
- 21. Was ist ein Inferenztyp?
- 22. Was ist ein Pastenskript?
- 23. Was ist ein Gruppenleiter
- 24. Was ist ein Bitmuster?
- 25. Was ist ein CGVector?
- 26. Was ist ein tGrid?
- 27. Was ist ein LPTHREAD_START_ROUTINE?
- 28. Was ist ein ImageObserver?
- 29. Was ist ein "Doppelstapelfehler"?
- 30. Was ist ein Pushlock?
Wie wäre es [Wikipedias Lambda-Kalkül Artikel] (http://en.wikipedia.org/wiki/Lambda_calculus) für einen Start? Dann [Wikipedia's Artikel über funktionale Programmierung] (http://en.wikipedia.org/wiki/Functional_programming_language) als Follow-up. – Thorsten79
mögliches Duplikat von [Was ist eine Lambda (Funktion)?] (Http://stackoverflow.com/questions/16501/what-is-a-lambda-function) – nawfal
amda Ausdruck erklärt [hier] (https: // chaseyourjava .blogspot.in/2017/11/lamda-expression-in-java-8.html) schön. –