하스켈 기본 문법
데이터 타입

기본 데이터 타입

하스켈에서 기본 데이터 타입은 매우 중요합니다. 하스켈은 강타입 언어로, 모든 값에는 명확한 타입이 있습니다.
여기서는 하스켈에서 자주 사용되는 몇 가지 기본 데이터 타입에 대해 알아보겠습니다.

정수 (Integer, Int)

하스켈에는 두 가지 주요 정수 타입이 있습니다: IntInteger입니다.

  • Int: 고정 크기 정수, 32비트 또는 64비트 정수 (플랫폼에 따라 다름).
  • Integer: 가변 크기 정수, 크기에 제한이 없음.
-- Int 예제
myInt :: Int
myInt = 42
 
-- Integer 예제
myInteger :: Integer
myInteger = 12345678901234567890

부동 소수점 (Float, Double)

하스켈에서는 두 가지 주요 부동 소수점 타입을 제공합니다: FloatDouble입니다.

  • Float: 단정밀도 부동 소수점 숫자 (32비트).
  • Double: 배정밀도 부동 소수점 숫자 (64비트).
-- Float 예제
myFloat :: Float
myFloat = 3.14
 
-- Double 예제
myDouble :: Double
myDouble = 3.141592653589793

불리언 (Bool)

Bool 타입은 참 (True) 또는 거짓 (False) 값을 가질 수 있습니다.

-- Bool 예제
myBool :: Bool
myBool = True

문자 (Char)

Char 타입은 단일 문자를 나타냅니다. 하스켈에서는 유니코드 문자를 지원합니다.

-- Char 예제
myChar :: Char
myChar = 'A'

문자열 (String)

String 타입은 문자들의 리스트로 표현됩니다. 기본적으로 [Char] 타입과 동일합니다.

-- String 예제
myString :: String
myString = "Hello, Haskell!"

튜플 (Tuple)

튜플은 여러 개의 값을 하나로 묶는 자료 구조입니다. 서로 다른 타입의 값을 가질 수 있습니다.

-- Tuple 예제
myTuple :: (Int, String, Bool)
myTuple = (1, "Haskell", True)

리스트 (List)

리스트는 같은 타입의 값들을 순서대로 모아놓은 자료 구조입니다.

-- List 예제
myList :: [Int]
myList = [1, 2, 3, 4, 5]

리스트 컴프리헨션을 사용하여 리스트를 생성할 수도 있습니다.

-- List comprehension 예제
squares :: [Int]
squares = [x * x | x <- [1..10]]

이제 하스켈에서 사용되는 주요 기본 데이터 타입에 대해 살펴보았습니다. 다음 섹션에서는 변수와 함수에 대해 알아보겠습니다.