내 작은 프로그램에서 패턴의 구문 분석 오류

J. Doe
left :: [String]->[Char]->Char
left [] _ = []
left (x:xs) (head xs) = x    -- it says error at head

적절한 괄호를 사용했지만 여전히 구문 분석 오류가 발생했습니다. 그런데 목록에서 이전 요소를 가져 오려고합니다 [["A"],["B"],["C"],["D"],["E"]]. 다른 실수가있을 수도 있습니다. Pls는 나를 수정합니다.

두 번째 질문은 이전 요소 이전 색인 문자를 어떻게 선택할 수 있는지입니다. 이 목록 [[ "J", "O", "H", "N"], [ "A", "L", "I", "C", "E"]] 및 "C ","H "를 기대하고 싶습니다. "C"는 2 번째 요소 4 번째 인덱스이고 "H"는 이전 요소 3 번째 인덱스입니다. 미리 Thnx

Drestin

내가 당신을 잘 이해했다면 목록에서 문자를 찾고 String선행 색인에서 선행 문자열의 문자를 반환 하는 함수가 필요합니다 .

다음과 같은 것 :

f ["JOHN", "ALICE"] 'C' == 'H'

먼저 Char리터럴은 Haskell ( 'A') 에서 간단한 따옴표로 구분 String되고 큰 따옴표 ( "ABC")로 리터럴은 구분 된다는 것을 알아야합니다 .

Haskell String에서는에 대한 별칭 [Char]이므로 "ABC"['A', 'B', 'C'].

이것은 Haskell에서 다음과 같은 함수를 정의 할 수 없습니다 f a a = stuff. GHC는 a여러 번 정의 된 내용에 대해 불만을 제기합니다 . 따라서 두 인수에 속성이 있는지 확인하려면 가드 패턴 이 필요 합니다 .

따라서 다음과 같이 첫 번째 함수를 작성합니다.

left :: [String] -> String -> String
left [] _ = ""
left [x] _ = ""
left (x1:x2:xs) str
    | x2 == str = x1
    | otherwise = left (x2:xs) str

두 번째 질문 :

import Data.List

f :: [String] -> Char -> Maybe Char
f [] _ = Nothing
f [a] _ = Nothing
f (x1:x2:xs) c
    | Just i <- elemIndex c x2 = Just $ x1 !! (i-1)
    | otherwise = f (x2:xs) c

메모:

  • left찾을 수 없거나 첫 번째 인 Maybe String경우 도 반환해야합니다 str.
  • fx1실제로 충분히 긴지 확인하지 않습니다.
  • 일반적으로 Haskell에서는 currying 을 허용하기 위해 list 매개 변수가 last 입니다.

편집하다:

zip(모듈에서 Data.List) 좀 더 영리한 접근 방식입니다 .

f :: [String] -> Char -> Maybe Char
f [] _ = Nothing
f [_] _ = Nothing
f (x1:"":xs) c = f xs c
f (x1:x2:xs) c = f' (zip x1 (tail x2))
    where f' [] = f (x2:xs) c
          f' ((a,b):l) = if b == c then a else f' l

이 버전은 충돌하지 않습니다. "n 번째 문자열의 m 번째 문자가되는 반면 (n + 1) 번째 문자열의 (m + 1) 번째 문자"는를 만족하는 첫 번째 문자를 반환합니다 c. 결과는 Maybe( Just 'H') 로 래핑됩니다 . 그렇지 않으면 Nothing( Maybe은 대략 Haskell의 nullable 형식)을 반환합니다 .

zip 한 쌍의 목록에서 두 목록을 병합하는 함수입니다.

zip ['a', 'b', 'c'] [1, 2] == [('a', 1), ('b', 2)]

결과 목록의 크기는 가장 작은 목록 중 하나입니다. 따라서 예제에서 발생하는 일은 다음과 같습니다.

zip "JOHN" (tail "ALICE") == [('J','L'), ('O', 'I'), ('H', 'C'), ('N', 'E')]

그런 다음 두 번째 문자가 검색된 문자인지 확인한 다음 쌍의 첫 번째 문자를 반환해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내 API로 구문 분석 오류

분류에서Dev

mysql-내 코드의 구문 분석 오류 (구문 오류)

분류에서Dev

재귀 수학 연산자에 대한 패턴의 구문 분석 오류

분류에서Dev

MongoDB로 PHP의 구문 분석 오류

분류에서Dev

패턴 일치에 대한 구문 분석 오류

분류에서Dev

x * y 패턴의 구문 분석 오류 (case 문의)

분류에서Dev

음의 정수를 배열로 구문 분석 할 때 프로그램 오류

분류에서Dev

내가 정의한 데이터 유형에 대한 구문 분석 오류

분류에서Dev

심각 : 응용 프로그램 web.xml의 구문 분석 오류

분류에서Dev

구문 분석 오류 : 4 행의 C : \ wamp \ www \ xyz \ contact-form.php에서 구문 오류, 예기치 않은 ':'

분류에서Dev

구문 분석 오류 : 26 행의 C : \ xampp \ htdocs \ eifel \ register.php에서 구문 오류, 예기치 않은 '}'

분류에서Dev

특정 구문 분석 상황에서 map ()의 내부 작동

분류에서Dev

내 코드에서 JSon 구문 분석 반환 오류

분류에서Dev

구문 분석 오류 : 구문 오류, -filename- 줄의 -linenumber-에 예기치 않은 '='

분류에서Dev

구문 분석 오류 : 구문 오류, PHP에서 예기치 않은 '['

분류에서Dev

구문 분석 오류 : 구문 오류, 예기치 않은 '.' PHP에서?

분류에서Dev

구문 분석 오류 : 구문 오류, connect.php에서 예기치 않은 '{'

분류에서Dev

정규식을 사용하여 변수의 문자열 내부에서 R123 [i] 패턴을 구문 분석하는 방법은 무엇입니까?

분류에서Dev

내 C 프로그램에서이 오류의 원인은 무엇입니까 (분할 오류 (코어 덤프 됨))?

분류에서Dev

구문 분석 오류 : 구문 오류, 예기치 않은 '}', ','또는 ';'예상 에 /

분류에서Dev

Django는 내부 서버 오류에서 WSGIRequest의 POST 매개 변수를 구문 분석 할 수 없습니다.

분류에서Dev

내 프로그램 C 언어의 작은 오류

분류에서Dev

Logstash grok 구문 분석 오류 구문 분석 로그 파일

분류에서Dev

.dat 파일을 구문 분석하고 내부에 선언 된 .jar 파일의 타임 스탬프 및 파일 크기와 같은 패턴을 가져 오는 방법

분류에서Dev

XML 구문 분석 오류 : Twilio의 문서 요소 후 정크

분류에서Dev

Flutter의 Json 오류에서 DateTime 구문 분석

분류에서Dev

C # .net에서 JSONObject의 구문 분석 오류

분류에서Dev

태그 내에서 CDATA 만 가져 오는 XML 구문 분석

분류에서Dev

XML 문서 구문 분석 오류

Related 관련 기사

  1. 1

    내 API로 구문 분석 오류

  2. 2

    mysql-내 코드의 구문 분석 오류 (구문 오류)

  3. 3

    재귀 수학 연산자에 대한 패턴의 구문 분석 오류

  4. 4

    MongoDB로 PHP의 구문 분석 오류

  5. 5

    패턴 일치에 대한 구문 분석 오류

  6. 6

    x * y 패턴의 구문 분석 오류 (case 문의)

  7. 7

    음의 정수를 배열로 구문 분석 할 때 프로그램 오류

  8. 8

    내가 정의한 데이터 유형에 대한 구문 분석 오류

  9. 9

    심각 : 응용 프로그램 web.xml의 구문 분석 오류

  10. 10

    구문 분석 오류 : 4 행의 C : \ wamp \ www \ xyz \ contact-form.php에서 구문 오류, 예기치 않은 ':'

  11. 11

    구문 분석 오류 : 26 행의 C : \ xampp \ htdocs \ eifel \ register.php에서 구문 오류, 예기치 않은 '}'

  12. 12

    특정 구문 분석 상황에서 map ()의 내부 작동

  13. 13

    내 코드에서 JSon 구문 분석 반환 오류

  14. 14

    구문 분석 오류 : 구문 오류, -filename- 줄의 -linenumber-에 예기치 않은 '='

  15. 15

    구문 분석 오류 : 구문 오류, PHP에서 예기치 않은 '['

  16. 16

    구문 분석 오류 : 구문 오류, 예기치 않은 '.' PHP에서?

  17. 17

    구문 분석 오류 : 구문 오류, connect.php에서 예기치 않은 '{'

  18. 18

    정규식을 사용하여 변수의 문자열 내부에서 R123 [i] 패턴을 구문 분석하는 방법은 무엇입니까?

  19. 19

    내 C 프로그램에서이 오류의 원인은 무엇입니까 (분할 오류 (코어 덤프 됨))?

  20. 20

    구문 분석 오류 : 구문 오류, 예기치 않은 '}', ','또는 ';'예상 에 /

  21. 21

    Django는 내부 서버 오류에서 WSGIRequest의 POST 매개 변수를 구문 분석 할 수 없습니다.

  22. 22

    내 프로그램 C 언어의 작은 오류

  23. 23

    Logstash grok 구문 분석 오류 구문 분석 로그 파일

  24. 24

    .dat 파일을 구문 분석하고 내부에 선언 된 .jar 파일의 타임 스탬프 및 파일 크기와 같은 패턴을 가져 오는 방법

  25. 25

    XML 구문 분석 오류 : Twilio의 문서 요소 후 정크

  26. 26

    Flutter의 Json 오류에서 DateTime 구문 분석

  27. 27

    C # .net에서 JSONObject의 구문 분석 오류

  28. 28

    태그 내에서 CDATA 만 가져 오는 XML 구문 분석

  29. 29

    XML 문서 구문 분석 오류

뜨겁다태그

보관