f xs = let g = \x -> 2 * x in map g xs

この場合、ラムダは最初に一回メモリにアロケートされて g に束縛されるよね。

でも、もしかして、

f xs = map (\x -> 2 * x) xs

これって、f が呼ばれる度に map の第一引数のコード(ラムダ)がメモリにアロケートされるの?