Juri Linkov writes: >> What about providing a simple anaphoric `and`? >> >> (let ((bar "bar")) >> (helm-aand bar >> (replace-regexp-in-string "b" "f" it) >> (replace-regexp-in-string "a" "o" it) >> (replace-regexp-in-string "r" "o" it))) >> =>"foo" > > What does the following return? > > (let ((bar "bar")) > (helm-aand bar > (replace-regexp-in-string "b" "f" it) > (replace-regexp-in-string "f" "o" it))) > > If it returns "oar" then it applies replacements sequentially, > and we have no problem with such implementations. Yes, it does, thought you wanted something easy to read (and write), it was the initial question isn't it? > But we need an alternative version that performs simultaneous > replacements and returns "far". So I don't understand what you want to achieve. -- Thierry