Привіт, хлопці, мені було цікаво, як я можу дозволити користувачеві визначити поле (рядок, стовпець) матриці в haskell.
Наприклад, користувач повинен ввести значення для поля, а потім користувач повинен ввести матрицю. Якщо користувач вводить більше значення, то те, що він визначив у полі, ніж програма, повинно показувати Виняток.
(наприклад, maxIndex=3 matrix [[1,2,3],[4,3,5],[3,7,8],[5,6,8]] -> Exception:Out of range
)
Відповіді:
1 для відповіді № 1Визначте власний тип, який так поводиться?
data Matrix = Matrix [[Int]] Int {-rows-} Int {-columns-}
-- constructor / accessor functions that do bounds checking
Пов'язані списки досить жахливі для представлення матриць btw. Якщо вам дійсно потрібно щось подібне, вам слід заглянути в існуючі пакети, як hmatrix.