haskell lista infinita de pares incrementais
Crie uma lista infinita de pares:: [(Integer, Integer)]
contendo pares da forma(m,n)
, onde cada um de m e n é um membro de[0 ..]
. Um requisito adicional é que, se(m,n)
é um membro legítimo da lista, então(elem (m,n) pairs)
deve retornarTrue
em tempo finito. Uma implementação de pares que viole esse requisito é considerada uma não solução.
**** Fresh edit Obrigado pelos comentários, Vamos ver se consigo fazer algum progresso ****
pairs :: [(Integer, Integer)]
pairs = [(m,n) | t <- [0..], m <- [0..], n <-[0..], m+n == t]
Algo assim? Eu simplesmente não sei onde isso vai retornar True em tempo finito.
Eu sinto que a maneira como a pergunta é redigida não tem que ser parte da minha resposta. Apenas se você ligar(elem (m,n) pairs)
deve retornar verdadeiro. Soa certo?