Haskell에서 간단한 함수를 작성하는 방법

1617 단어
오늘 우리는 Haskell에서 첫 번째 함수를 작성할 것입니다. 예를 들어 중력 가속도 g와 시간 t를 고려하여 자유 낙하하는 거리 s(t)를 계산하는 함수를 사용합니다.

이를 위해 다음 공식을 사용합니다.

s(t) = 1/2 * g * t^2

거리는 미터로, 시간은 초로 표시되어야 합니다.

우리가 스스로에게 물어봐야 할 첫 번째 질문은 단위를 표현하려는 데이터 유형이 무엇인지입니다. Double 데이터 유형이 여기에 가장 적합합니다. 여기서는 일반적으로 부동 소수점 숫자로 작업하기 때문입니다. 따라서 서명은 다음과 같습니다.
distance :: Double -> Double
중력으로 인한 가속도는 고정된 값(9.80665)이므로 유일한 입력 매개변수는 시간 t입니다. 이것은 우리의 기능이 다음과 같다는 것을 의미합니다:
distance t = 1/ 2 * 9.80665 * t * t
물론 g를 전역 변수로 설정할 수도 있습니다. 이를 위해 간단히 다음과 같이 작성합니다.

g :: Double
g = 9.80665


이제 공식의 값을 변수 g로 바꾸면 됩니다.

물론 다음을 사용하여 함수를 정의하는 것도 가능합니다.

distanceWhere :: Double -> Double 
distanceWhere t = 1 / 2 * g * t * t
    where g = 9.80665


let 구문을 사용하면 모든 것이 다음과 같이 보입니다.

distanceLet :: Double -> Double 
distanceLet t = let g = 9.80665
    in 1 / 2 * g * t * t


물론 우리는 음수 값을 입력으로 받고 싶지 않기 때문에 이에 대한 오류 메시지 출력이 있을 수 있습니다. if-then-else 표현식을 함께 사용하면 전체가 다음과 같이 표시됩니다.

distanceIf :: Double -> Double 
distanceIf t = if t < 0 then error "negative time"
               else 1 / 2 * 9.80665 * t * t


또는 경비원과 함께:

distanceGuards :: Double -> Double 
distanceGuards t  | t < 0 = error "negative time"
                  | otherwise = 1 / 2 * 9.80665 * t * t

좋은 웹페이지 즐겨찾기