The Practice archive provides access to all Practice articles published in past issues of Communications of the ACM.
"Mostly functional" programming does not work.
Looking at embedded DSLs.
High-level DSLs for low-level programming.