Reddit のユーザーが次のコードを教えてくれました。
main = do
let ns = [print 1, print 2, print 3]
sequence_ ns
sequence_ $ reverse ns
sequence_ $ tail ns ++ [head ns]
head ns
ここで何が起こっているかというと、リバースやテールまたはヘッドの取得など、処理できる一連の操作があります。
素晴らしい。
私がやりたいことは、個々の要素に入り込み、それらを永久に変更することです. たとえば、次のようなことができるようになりたいです。
ns !! 0
[print, 1] のようなものを取得し、最後の要素をたとえば 3.14 に変更して、関数が 3.14 を出力するようにします。
Haskellでそれはまったく可能ですか、それともLISPに戻るべきですか?
重要な編集:私はちょっと大失敗しました。新しいリストを作成する必要があることを理解しています。リストの一部である関数の引数を取得することは可能ですか? 私が欲しいのは、関数をその識別子/引数から構成し、評価される前に関数を識別子/引数に分解できることです。