Ich habe ein Problem mit der Implementierung von FP (Backus) Interpreter in Haskell.
FP-Funktionen sehen so aus:
%Vor%sollte mit
enden %Vor%bedeutet, dass jede Funktion aus der Liste auf der linken Seite für jedes Element einer Liste auf der rechten Seite ausgeführt werden sollte.
Was ich verstehe, ist, dass ich etwas Ähnliches wie "map" -Funktion brauche, aber Map wendet eine Funktion auf eine Liste an, und ich brauche eine Liste von Funktionen in einer Liste von Werten.
Vielen Dank im Voraus! : -)
BEARBEITEN:
Da ich nicht genau war, hier ist mein Code, der nicht funktioniert:
%Vor%Ich kann nicht herausfinden warum ...: - (
EDIT 2:
Entschuldigung, ich war zu müde, um den ganzen Tag daran zu arbeiten. Problem ist, dass ich keine zweite Leitung brauche, nur die erste:
%Vor%Jetzt funktioniert alles gut, vielen Dank! : -)
Ich glaube, Sie suchen nach der Funktion zipWith
und wenden sie mit der Funktion Anwendungsoperator $
an.
Wenn Sie also eine Liste von Funktionen funcList
und eine Liste von Werten valueList
haben, würden Sie dies mit:
Also wäre es etwas wie
%Vor% gibt Ihnen das Ergebnis [6,15]
Um eine Art Kreuzanwendung zu erhalten, könnten Sie
verwenden %Vor% das gibt dir [6,10,3,15]
. Nicht sicher, was Sie mit dem & lt; meinen, wollen Sie Paare, verschachtelte Listen oder was genau brauchen Sie?
Ich weiß nicht, ob Sie das wirklich brauchen, aber
%Vor%Wenn Sie Listen von & lt; 2,3 & gt; Paare, können Sie etwas wie
verwenden %Vor%