funcao que recebe uma lista de listas e uma string e que devolva True or False
#1
Publicado 14 de Fevereiro de 2012 - 20:11
#2
Publicado 14 de Fevereiro de 2012 - 21:11
#3
Publicado 14 de Fevereiro de 2012 - 21:23
lesiano16, em 14 de Fevereiro de 2012 - 21:11, disse:
Ou também podes simplesmente percorrer a lista com recursividade
Numa lista de strings (x:xs) ->x é uma string
e no teu caso x seria uma lista de strings .
Fazendo uma função auxiliar deste tipo
Código (Haskell):
#4
Publicado 15 de Fevereiro de 2012 - 10:53
Código (Haskell):
fn a (x:xs)= any(==a) x
Se eu fizer assim Código (Haskell):
lexical error in string/character literal at character 'o'
#5
Publicado 15 de Fevereiro de 2012 - 11:39
" " isto é pra identificar uma lista de char , ou seja uma string
#6
Publicado 15 de Fevereiro de 2012 - 12:50
<interactive>:1:13:
Couldn't match expected type `[Char]' with actual type `Char'
Expected type: [[Char]]
Actual type: [Char]
In the second argument of `any', namely `"ww"'
In the expression: any (== "ww") "ww"
e o filter tambem nao funciona
Código (Haskell):
<interactive>:1:16:
Couldn't match expected type `[Char]' with actual type `Char'
Expected type: [[Char]]
Actual type: [Char]
In the second argument of `filter', namely `"ww"'
In the expression: filter (== "ww") "ww"
#7
Publicado 15 de Fevereiro de 2012 - 13:19
se o teu predicado é ser igual a "ww" que já é uma string então ele tem que buscar a uma lista de strings
ou seja [[Char]]
O que tinhas que ter era any (==String) [String] ou seja any (=="ww") [String1,String2,etc]
#8
Publicado 15 de Fevereiro de 2012 - 14:27
#9
Publicado 15 de Fevereiro de 2012 - 14:41
#10
Publicado 15 de Fevereiro de 2012 - 14:53
se tens (=='w') o teu a é um char logo,([a]->Bool) vais ter que buscar numa lista de char
se tens um (=="ww") o teu a é uma string logo vais ter que buscar a uma [String]
ele funciona para um a e uma lista de [a] na importa se o a é um inteiro uma string um char desde que de depois a tua lista seja uma lista do tipo [a]
#11
Publicado 15 de Fevereiro de 2012 - 14:55
#12
Publicado 15 de Fevereiro de 2012 - 15:09
func ::Int->[Int]->Bool
func _ []=False
func n l=any (==n) l
--com uma [[Int]]
func1 ::Int->[[Int]]->Bool
func1 _ []=False
func1 n (x:xs)=any (==n) x||func1 n xs
--sem uso de funções prédefinidas
func2 ::Int->[Int]->Bool
func2 _ []=False
func2 n (x:xs)|n==x=True
|otherwise=func2 n xs
--sem uso de funções prédefinidas e com uma [[Int]]
func3 ::Int->[[Int]]->Bool
func3 _ []=False
func3 n (x:xs)=func2 n x||func3 n xs
--com elem
func4 ::Int->[Int]->Bool
func4 _ []=False
func4 n l=elem n l
Fiz vários exemplos com estas funções que foram mencionadas e sem nenhuma delas
#13
Publicado 15 de Fevereiro de 2012 - 16:33
Código (Haskell):
func a a:xs= true
func a x:xs = func a xs
ela não fará logo a comparação da string ([char]) dando logo true se encontrar?
#14
Publicado 15 de Fevereiro de 2012 - 17:15
Código (Haskell):
func a a:xs= true
func a x:xs = func a xs
e func a (x:xs) = func a xs a única coisa que faz é repetir a função pra todos os elementos sem nenhuma comparação feita
#15
Publicado 17 de Fevereiro de 2012 - 03:15
Código (Haskell):
func a x:xs= if a==x then true else func a xs
Já funciona, não?
#16
Publicado 17 de Fevereiro de 2012 - 10:27
Código (Haskell):
func (x:xs) |a==x=True
|otherwise=func a xs
#17
Publicado 17 de Fevereiro de 2012 - 14:32
Código (Haskell):
#18
Publicado 17 de Fevereiro de 2012 - 17:24
#19
Publicado 17 de Fevereiro de 2012 - 17:28
#20
Publicado 20 de Fevereiro de 2012 - 05:10











