Eine Person auf Reddit hat diesen Code, um meine Aufmerksamkeit gebracht:(emuliert) Makros in Haskell?
main = do
let ns = [print 1, print 2, print 3]
sequence_ ns
sequence_ $ reverse ns
sequence_ $ tail ns ++ [head ns]
head ns
Was hier los ist, dass wir eine Reihe von Operationen, die wir Sachen mit, wie umgekehrt tun oder mit dem Schwanz oder Kopf.
Ehrfürchtig.
Was ich tun möchte, ist in einzelne Elemente zu kommen und sie für immer zu ändern. Zum Beispiel möchte ich so etwas wie dies in der Lage sein zu tun:
ns !! 0
und bekommen so etwas wie [print, 1] und dann letzte Element ändern, sagen wir, 3,14, so dass die Funktion würde 3,14 drucken.
Ist es in Haskell überhaupt möglich oder sollte ich einfach zurück zu LISP gehen?
EIN WICHTIGER BEARBEITUNG: Ich habe etwas getäuscht. Ich verstehe, dass ich eine neue Liste erstellen muss. Ist es möglich, die Argumente einer Funktion zu bekommen, die Teil einer Liste ist? Was ich will, ist die Fähigkeit, Funktionen aus ihren Bezeichnern/Argumenten zusammenzusetzen und auch eine Funktion in Bezeichner/Argument zu zerlegen, bevor es ausgewertet wird.
BTW: Wofür brauchst du das eigentlich? – yairchu