  A coding scheme for write once memory (WOM) using polar codes is presented.
It is shown that the scheme achieves the capacity region of noiseless WOMs when
an arbitrary number of multiple writes is permitted. The encoding and decoding
complexities scale as O(N log N) where N is the blocklength. For N sufficiently
large, the error probability decreases sub-exponentially in N. The results can
be generalized from binary to generalized WOMs, described by an arbitrary
directed acyclic graph, using nonbinary polar codes. In the derivation we also
obtain results on the typical distortion of polar codes for lossy source
coding. Some simulation results with finite length codes are presented.
