Съжалявам, ако вече е зададен ТОЧЕН въпрос...
Имам задание за судоку в Haskell и ще се радвам на обратна връзка тук.
Целта е да се приложи функция, която представлява судоку, което съдържа само празни клетки, и след това да се наименува allBlankSudoku :: Sudoku
, където
data Sudoku = Sudoku [[Maybe Int]]
Трябва да използвате разбиране на списък или функцията map, за да направите това,
map :: (a -> b) -> [a] -> [b]
Това е моето мнение за това:
allBlankSudoku :: Sudoku
allBlankSudoku = Sudoku (map (replicate 9) (replicate 9 Nothing))
НО! Ето моят въпрос: В инструкциите се казва "Не използвайте програмиране за копиране и поставяне тук! Вашата дефиниция не трябва да бъде по-дълга от няколко кратки реда."
И така, кодът ми по-горе копиране и поставяне ли е или не? Има ли допълнителен начин да го направя? Забележка: Това е само първата задача от 3, така че не мисля, че трябва да е трудна.
let r9 = replicate 9 in Sudoku (map r9 (r9 Nothing))
. Но това всъщност не е по-четливо, нито по-ефективно. - person user2407038   schedule 29.09.2015