> val = (yield lang[i])

> yield文の戻り値は代入出来ないが

してるじゃん。