Funktionsnamen finden (Lisp/Scheme/Haskell like)

Gast #6315851
Lesenswert?

Mit welchen Suchbegriffen finde ich den gängigen Namen der in den 
folgenden Pseudo-C-Deklarationen mit drei Fragezeichen markierten 
Funktion?
1
list map (unary_function, list);
2
value fold (binary_function, list);
3
list ??? (binary_function, list, list);
Viele Dank
Gast #6316358
Lesenswert?

ich glaub dem Dude ist nicht ganz klar was er überhaupt fragen will...

denn mit zwei Funktionsnamen einen dritten zu erraten ist vermutlich
so genau wie aus zwei gezogenen Lottokugeln die nächste vorherzusehen.

Mein erster gedanke war.. compare
weil zwei Listen als parameter übergeben werden..
und eine binary funktion mir vorhanden/nichtvorhanden suggeriert

Aber wie gesagt, das ist in etwa so zuverlässig wie besagte Lottokugel.


'sid
Gast #6316433
Lesenswert?

Jim M. schrieb:
> Mir ist nicht so ganz klar was ???  machen soll.

sid schrieb:
> Mein erster gedanke war.. compare
> weil zwei Listen als parameter übergeben werden..
> und eine binary funktion mir vorhanden/nichtvorhanden suggeriert

Eine Verallgemeinerung von compare auf alle Typen soll es ungefähr sein, 
so dass man z. B. auch pow() übergeben könnte.
Moderator #6316535
Lesenswert?

Für Haskell gibt es die Suchmaschine Hoogle, die Funktionen anhand ihrer
Signatur findet:

  https://hoogle.haskell.org/

Die Suche ist dabei tolerant, d.h. es werden auch Funktionen gefunden,
deren Signatur nur ungefähr mit der vorgegebenen übereinstimmt.

Deine drei Beispiele in Haskell-Signaturen übersetzt und in Hoogle
eingegeben liefern u.a. die folgenden Funktionen:

1
Signatur                              Funktionen
2
────────────────────────────────────────────────────────────────
3
(a -> b) -> [a] -> [b]                map
4

5
(a -> a -> a) -> [a] -> a             foldl1, foldl1' und foldr1
6

7
(a -> b -> c) -> [a] -> [b] -> [c]    zipWith, zipWithLazy
8
────────────────────────────────────────────────────────────────

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren