2014-11-27 2 views
0

나는 목록의 글자가 필요한 한 번의 운동으로 막혔습니다. 예 :목록의 글자를 제거하십시오.

[A,23,XY,4] the resultant list should be [23,4] 
내가 재귀를 사용하여 생각

하지만 방법이없는 편지는 경우, 또는 내가, 검증을합니까. splitOn을 읽었지만 같은 문제가있었습니다. 내가 무엇을 verificate에 쓰고 있습니까?

splitOn (...) [A,4,d,1] 
(...) -> what i put here? 

예를 들어 Java의 경우 isDigit 메소드를 종료하고 haskell에서 이와 같은 메소드가 존재합니까?

+0

'Data.Char'에는 문자 분류 기능이 많이 포함되어 있습니다. [this] (https://www.haskell.org/hoogle/?hoogle=Char+-%3E+Bool) – ErikR

답변

4

목록 유형이 잘못되었습니다.

[A,23,XY,4] 

이것은 하스켈에서 아무런 의미가 없습니다 ....이 문제에는 적어도 두 가지가 있습니다. 대문자로 시작

  1. 키워드 (Int 또는 String 같은) 유형 하스켈에서 예약 기입니다.

  2. 혼합 유형 목록은 허용되지 않습니다.

나는이 질문에 귀하가 Char의 목록을 사용하려고 한 것으로 추측합니다.

['A', '2', 'X', '4'] 

(하스켈, Char의 목록에서 노트 - 단지 문자열이기 때문에이 또한 "A2X4"과 같이 쓸 수있다)

이 경우, 당신은 알파벳 문자를 제거 할 수 있습니다 몇 가지 표준 기능을 사용합니다. 한편


filter (not . isAlpha) ['A', '2', 'X', '4'] 

, 당신은 또한 문자열의 목록을 필터링해야 할 수 있습니다.
["A", "23", "XY", "4"] 

는 알파벳 문자가 포함 된 문자열을 필터링 할 수있는 모든 알파벳 문자 인 문자열, 또는

filter (not . any isAlpha) ["A", "23", "XY", "4"] 

를 필터링 유사

filter (not . all isAlpha) ["A", "23", "XY", "4"] 

수행 할 수 있습니다.

참고 이러한 스 니펫이 작동하려면 Data.Char을 가져와야합니다.

+0

@jamishidh 예,이게 내 문제를 해결했습니다. , 고맙습니다! – user3645265

관련 문제