practice problems from Eloquent Javascript by Marijn Haverbeke