Una persona en Reddit ha traído este código a mi atención:(emulado) ¿Macros en Haskell?
main = do
let ns = [print 1, print 2, print 3]
sequence_ ns
sequence_ $ reverse ns
sequence_ $ tail ns ++ [head ns]
head ns
lo que está pasando aquí es que tenemos una serie de operaciones que podemos hacer cosas con, como inversa o conseguir su cola o la cabeza.
Impresionante.
Lo que quiero hacer es entrar en elementos individuales y cambiarlos para siempre. Por ejemplo, quiero ser capaz de hacer algo como esto:
ns !! 0
y conseguir algo como [imprimir, 1] y luego cambiar a último elemento, por ejemplo, 3,14 para que la función imprimiría 3.14.
¿Es posible en Haskell o debería volver a LISP?
UNA EDICIÓN IMPORTANTE: En cierto modo cometí un error. Entiendo que tendré que crear una nueva lista. ¿Es posible obtener los argumentos de una función, que es parte de una lista? Lo que quiero es la capacidad de componer funciones a partir de sus identificadores/argumentos y también poder descomponer una función en identificador/argumento antes de que se evalúe.
por cierto, ¿para qué necesitas esto en realidad? – yairchu