Я пишу простую игру OpenGL с Haskell.Всякий раз, когда пользователь изменяет размеры окна, я получаю их ширину и высоту.Мне нужно рассчитать наибольшую ширину и высоту, которая вписывается в их окно при сохранении отношения W / H 1,6.
Это то, что я написал.Это работает, но я не думаю, что это лучший способ сделать это в Haskell.Может кто-нибудь предложить несколько альтернатив:
fixedRatio = 1.6
keepRatio (w,h) = head [(floor w',floor h') | w' <- [w, h*fixedRatio], h' <- [h, w/fixedRatio], w' <= w, h' <= h, w'/h' == fixedRatio ]