Haskell-상호 작용을 통해 목록에서 가장 많이 반복되는 요소 계산

Zorkolot

가장 많이 사용되는 단어와 나타나는 횟수를 반환하는 상호 작용을 사용하여 Haskell 프로그램을 만들려고합니다. 나는 정렬을 사용한 예를 보았지만 모든 단어의 개수를 알 필요는 없으며 가장 많이 반복되는 단어 만 필요합니다. 지금까지 :

import Data.List -- (sort)
import Data.Char -- (isAlpha, toLower)
import Data.Ord -- (maximumBy)

main = 
   interact 
   $ unwords
   -- comment: here show the size of the list and the word (probably head)
   . maximumBy(comparing length) 
   . group 
   . sort 
   . words 
   . map (\char -> if isAlpha char then toLower char else ' ')

위의 컴파일됩니다. maximumBy다음과 같이 가장 많이 사용되는 단어를 제공합니다.

[the, the, the, the, the, the, the, the...]

단어 "the"가 텍스트에 나타나는 횟수 ; "the"내가 제공 한 텍스트에 가장 많이 사용되는 단어 임을 확인했습니다 .

출력하고 싶은 것은 다음과 같습니다. "the, 318"

나는 첫 글자 "t"와 3만을주는 다음을 시도했다 :

import Data.List -- sort
import Data.Char -- isAlpha, toLower
import Data.Ord -- maximumBy

main = 
   interact 
   $ unwords
   . map (\(n, w) -> show n ++ ", " ++ show w)
   . map (\s -> (length s, head s))
   . maximumBy(comparing length) 
   . group 
   . sort 
   . words 
   . map (\char -> if isAlpha char then toLower char else ' ')

출력을 제공합니다.

"3, 't' 3, 't' 3, 't' 3, 't' ..."

아무도 내가 뭘 잘못하고 있는지 알아?

외 르얀 요한센

mapmap (\s -> (length s, head s))함수가 수단 \s -> (length s, head s)각각에 적용되는 "the"대신리스트의 "the"반복적 길이의 첫 번째 문자를주는 집 "the". 따라서 제거하면 map더 잘 작동합니다. 또한 마지막 두 단계를 수정해야합니다 ( unwords제거 map).

   $ (\(n, w) -> show n ++ ", " ++ show w)
   . (\s -> (length s, head s))
   . maximumBy(comparing length)

더 효율적으로 파이프 라인에서 최대 값보다 map (\s -> (length s, head s)) 더 일찍 신청할 수 있습니다.

  1. length최대 함수가 수행하는 각 비교에서 다시 계산하지 마십시오.
  2. maximum대신 일반 사용하십시오 maximumBy. ( 똑같이 빈번한 단어가 두 개 있으면 실제 문자열을 비교하기 때문에 어떤 단어가 선택되는지는 약간 다를 있습니다.)

즉, 다음을 사용할 수 있습니다.

   $ (\(n, w) -> show n ++ ", " ++ show w)
   . maximum
   . map (\s -> (length s, head s))

또는 모두 합치려면 :

import Data.List (group, sort)
import Data.Char (isAlpha, toLower)

main = 
   interact 
   $ (\(n, w) -> show n ++ ", " ++ show w)
   . maximum
   . map (\s -> (length s, head s))
   . group 
   . sort 
   . words 
   . map (\char -> if isAlpha char then toLower char else ' ')

import가져 오는 항목의 이름을 명시 적으로 지정하기 위해 공식 구문을 사용 하도록 명령문을 변경 한 방법도 참고하십시오 . 실제로 group놓친 함수 하나 ( maximumBy)와 잘못된 모듈로 나열한 하나 ( )를 가리키는 오류 메시지가 표시 되었기 때문에 주석을 사용하는 것이 좋습니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬 정수 목록에서 반복되는 숫자의 가장 긴 행을 계산

분류에서Dev

Excel 수식-목록에서 가장 많이 반복되는 상위 10 개 값

분류에서Dev

숫자 목록에서 가장 많이 반복되는 숫자가 포함 된 목록을 반환합니다.

분류에서Dev

목록 및 배열 목록의 데이터 프레임을 통해 반복되는 계산

분류에서Dev

계산에서 가장 많은 수의 목록을 제외하는 방법

분류에서Dev

MATLAB-셀형 배열에서 가장 많이 반복되는 요소

분류에서Dev

MATLAB-셀형 배열에서 가장 많이 반복되는 요소

분류에서Dev

.csv 파일을 가져올 때 다른 목록에서 한 목록의 요소를 찾아서 계산하는 것이 작동하지 않습니다.

분류에서Dev

파이썬 목록에서 쌍을 이루는 각 요소의 조합을 통해 반복

분류에서Dev

파이썬에서 튜플의 요소를 얻기 위해 두 목록을 상호 작용

분류에서Dev

Haskell-목록에서 가장 작은 요소 찾기

분류에서Dev

Haskell 목록에서 요소의 발생을 재귀 적으로 계산하는 방법은 무엇입니까?

분류에서Dev

파이썬 목록에서 반복되지 않는 용어 수 계산

분류에서Dev

파이썬에서 목록 이해를 사용하여 목록의 요소 발생 수를 계산하는 방법은 무엇입니까?

분류에서Dev

Prelude. !! : 인덱스가 너무 큽니다 (이전에 계산 된 목록 요소에 대한 액세스를 기반으로하는 Haskell 재귀.)

분류에서Dev

MySQL을 통해 하루에 얼마나 많은 테이블 항목이 생성되었는지 계산

분류에서Dev

Haskell에서 공통 정수에 대해 3 개 목록을 확인하는 가장 효율적인 방법

분류에서Dev

Racket의 목록에서 가장 많이 발생하는 요소 찾기

분류에서Dev

Racket의 목록에서 가장 많이 발생하는 요소 찾기

분류에서Dev

반복되는 요소없이 목록에서 사전을 만드는 방법

분류에서Dev

목록을 반복하는 동안 목록에서 유사한 요소를 계산하고 제거합니다.

분류에서Dev

내부 프레임을 통해 계산 된 외부 요소의 호버 상태

분류에서Dev

n 개의 요소가있는 목록이 주어지면 O (K)에서 삽입 및 삭제 후 항상 가장 큰 k 요소를 찾기 위해 어떻게 든 힙을 사용해야합니까?

분류에서Dev

파이썬은 목록에서 가장 크고 가장 작은 요소의 위치를 계산합니다. 없음 유형 오류

분류에서Dev

한 라이너의 목록에서 1을 반환하는 요소의 수를 계산합니다.

분류에서Dev

요소가 시퀀스에서 반복되거나 반복되지 않는 횟수를 계산합니다 (R).

분류에서Dev

Pandas는 gropby 내부의 중첩 목록에서 가장 빈번한 요소를 계산하고 가장 큰 값을 얻습니다.

분류에서Dev

jquery Mobile에서 축소 가능한 목록의 색상을 변경하고 거품을 계산하는 방법

분류에서Dev

웹 페이지에서 가장 많이 계산 된 단어 또는 구문을 가져옴-> 변수에 저장

Related 관련 기사

  1. 1

    파이썬 정수 목록에서 반복되는 숫자의 가장 긴 행을 계산

  2. 2

    Excel 수식-목록에서 가장 많이 반복되는 상위 10 개 값

  3. 3

    숫자 목록에서 가장 많이 반복되는 숫자가 포함 된 목록을 반환합니다.

  4. 4

    목록 및 배열 목록의 데이터 프레임을 통해 반복되는 계산

  5. 5

    계산에서 가장 많은 수의 목록을 제외하는 방법

  6. 6

    MATLAB-셀형 배열에서 가장 많이 반복되는 요소

  7. 7

    MATLAB-셀형 배열에서 가장 많이 반복되는 요소

  8. 8

    .csv 파일을 가져올 때 다른 목록에서 한 목록의 요소를 찾아서 계산하는 것이 작동하지 않습니다.

  9. 9

    파이썬 목록에서 쌍을 이루는 각 요소의 조합을 통해 반복

  10. 10

    파이썬에서 튜플의 요소를 얻기 위해 두 목록을 상호 작용

  11. 11

    Haskell-목록에서 가장 작은 요소 찾기

  12. 12

    Haskell 목록에서 요소의 발생을 재귀 적으로 계산하는 방법은 무엇입니까?

  13. 13

    파이썬 목록에서 반복되지 않는 용어 수 계산

  14. 14

    파이썬에서 목록 이해를 사용하여 목록의 요소 발생 수를 계산하는 방법은 무엇입니까?

  15. 15

    Prelude. !! : 인덱스가 너무 큽니다 (이전에 계산 된 목록 요소에 대한 액세스를 기반으로하는 Haskell 재귀.)

  16. 16

    MySQL을 통해 하루에 얼마나 많은 테이블 항목이 생성되었는지 계산

  17. 17

    Haskell에서 공통 정수에 대해 3 개 목록을 확인하는 가장 효율적인 방법

  18. 18

    Racket의 목록에서 가장 많이 발생하는 요소 찾기

  19. 19

    Racket의 목록에서 가장 많이 발생하는 요소 찾기

  20. 20

    반복되는 요소없이 목록에서 사전을 만드는 방법

  21. 21

    목록을 반복하는 동안 목록에서 유사한 요소를 계산하고 제거합니다.

  22. 22

    내부 프레임을 통해 계산 된 외부 요소의 호버 상태

  23. 23

    n 개의 요소가있는 목록이 주어지면 O (K)에서 삽입 및 삭제 후 항상 가장 큰 k 요소를 찾기 위해 어떻게 든 힙을 사용해야합니까?

  24. 24

    파이썬은 목록에서 가장 크고 가장 작은 요소의 위치를 계산합니다. 없음 유형 오류

  25. 25

    한 라이너의 목록에서 1을 반환하는 요소의 수를 계산합니다.

  26. 26

    요소가 시퀀스에서 반복되거나 반복되지 않는 횟수를 계산합니다 (R).

  27. 27

    Pandas는 gropby 내부의 중첩 목록에서 가장 빈번한 요소를 계산하고 가장 큰 값을 얻습니다.

  28. 28

    jquery Mobile에서 축소 가능한 목록의 색상을 변경하고 거품을 계산하는 방법

  29. 29

    웹 페이지에서 가장 많이 계산 된 단어 또는 구문을 가져옴-> 변수에 저장

뜨겁다태그

보관