zipはリストの順序を変えると結果が変わるという意味ではシンプルではない
内包表記で書けば (!!) が出てくる
zipWith f xs ys = [f (xs!!i) (ys!!i) | ・・・]