Definition: Funktion

Von: , Frage gestellt am Fr, 2. Jan 2004

hi an alle und ein frohes neues,

ich habe hier mal eine kleine Frage an die Experten Community. ich arbeite gerade an einer Hausarbeit und versuche gerade in kurzen knappen Saetzen zu beschreiben was eine Funktion (LISP) ist, natuerlich als Definition. wikipedia spuckt leider nichts aus. habt ihr eine Idee?

vielen dank, denn auch googlen brachte nicht allzuviel sinnvolle Ergebnisse.

cheers josh

5 Antworten zu dieser Frage

  1. Antwort von nach 4 Stunden 0 hilfreich
    Re: Definition: Funktion

    allgemein sollte da in etwa sowas hin wie:
    "eine Funktion ist eine Prozedur die einen Rückgabewert hat.
    So ist es möglich mit Hilfe einer Funktion eigene >Befehle< zu definieren."

    Keine Ahnung ob das bei LISP auch so ist, war aber bei allen Sprachen die ich bis jetzt hatte war es so. Bin halt Praktiker und kann mit Theorie nicht viel anfangen.

    Ausformulieren mußt du es noch selbst, Beispiele haste bestimmt auch noch massenweise !? :)

  2. Antwort von nach 17 Stunden 1 hilfreich
    Re: Definition: Funktion

    Eine Funktion ist eine Abbildung von Eingabeparametern auf Ausgabeparameter. Eine Funktion ist (im Gegensatz zu einer Prozedur) seiteneffektfrei, das heisst das die Funktion bei gleichen Eingabeparametern IMMER die gleichen Ausgabeparameter berechnet. (Wobei es meistens bei Funktionalen Programmiersprachen wie Lisp Ausnahmen gibt, z.B. bei Ein/Ausgabe, da als Nebeneffekt die Ausgabe erzeugt wird...)

    Dann vielleicht noch interessant: Der Unterschied in der Funktionsabarbeitung von Call by value und call by name. Ersteres berechnet erst die Parameter und dann den Funktionswert davon, call by name berechnet die Parameter erst wenn sie benutzt werden. Das kann ähnlich die strikten/nicht-strikten Auswertung von Bedingungen in anderen Programmiersprachen zu Fehlern führen.

    Ralph

    • Antwort von nach 22 Stunden 0 hilfreich
      Re^2: Definition: Funktion

      hi Ralph,

      vielen dank, dass sieht ja mal ganz gut aus. knapp und formal korrekt.

      dass kann ich nehmen.

      cu josh

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Definition: Funktion

      ....... Prozedur) seiteneffektfrei, das heisst das die Funktion bei
      gleichen Eingabeparametern IMMER die gleichen Ausgabeparameter
      berechnet. (Wobei es meistens bei Funktionalen
      .......

      *rumblödel*
      was ist dann mit Funktionen solcher art wie: rand(), time() u.a. ?

      nein ich weiß....
      & auch nicht wirklich wichtig ;)

      */rumblödel*

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: Definition: Funktion

        was ist dann mit Funktionen solcher art wie: rand(), time()
        u.a. ?

        nein ich weiß....
        & auch nicht wirklich wichtig ;)
        Erst mal sind Funktionen ohne Eingabeparameter Konstanten. Bei rand() und time() trifft das nicht zu, da wirst du mir zustimmen ;-).
        rand() und time() sind also keine Funktionen im eigentlichen Sinne, da sie einen internen Zustand besitzen (letzte Zufallszahl bzw. Elemente die zur Erzeugung der Pseudozufallszahlen dienen, wie Uhrzeit, Plattenzugriffe o.ä. bzw. die aktuelle Uhrzeit.)

        Trotzdem werden sie von den meisten Programmiersprachen als Funktionen betrachtet. Wie schon oben gesagt sind auch Ausgabefunktionen in Lisp keine richtigen Funktionen, da sie "nebenbei" eine Ausgabe erzeugen. In Programmiersprachen wird die Anwendung von Funktionen selten strikt gehandhabt. Dort unterscheidet man zum Beispiel selten zwischen Funktionen und Prozeduren mit Ausgabeparametern.

        Ralph

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!