Sto facendo il problema 21 in eulerproject. Una parte richiede la ricerca dell'elenco dei divisori appropriati di un numero. vale a dire dove c'è il resto di n
e un numero inferiore a n
. Così ho fatto questo Haskell, ma GHCI si arrabbia con me.Creazione di un elenco di divisori in Haskell
divisors n =[ n | n <- [1..(n-1)], n `rem` [1..(n-1)] ==0 ]
Il problema è che non so come fare:
n `rem` [1..(n-1)]
in modo che restituisca solo il numero a meno di n
che divide in modo uniforme in n
.
Perché la comprensione delle liste non è molto Haskell? Inoltre, una piccola domanda, c'è un modo per trovare la somma della somma di tutte le liste in una lista? –
Non sono un veterano di Haskell con qualsiasi mezzo, ma non ho visto alcuna comprensione delle liste usata in nessuna libreria di Haskell, per esempio. Risposta piccola: 'sum $ map sum x', come' sum $ map sum [[1,2,3], [4,5,6], [7,8,9]] 'risultante in 45. –
Oppure 'somma. concat', che per prima fa una grande lista. –