1. Starting out

 

준비, 땅!

  • 기본 가감승제는 같음
  • 논리연산도 C와 같음.
  • 비교는 ==/= 을 사용. 같다와 같지 않다.
  • 함수 호출이 독특함
succ 8 min 9 10 max 100 101
  • 함수는 가장 가까운 것은 인자로 먹는다.
succ 9 + max 5 4 + 1 (succ 9) + (max 5 4) + 1
     

    아기 함수

    doubleMe x = x + x
    • GHCi 에서 파일을 부르려면 :l 파일명 .
    doubleMe 9 doubleMe 8.3
    • 두 개의 인수
    doubleUs x y = x*2 + y*2
    • 호출도 간단
    doubleUs 4 9 doubleUs 28 8 + doubleMe 123
    • doubleMe 를 써서 doubleUs 를 재정의
    doubleUs x y = doubleMe x + doubleMe y
    • 하스켈의 if-then-else 함수
    doubleSmallNumber x = if x > 100 then x else x*x
    • 하스켈은 이름에 ' 문자를 쓸 수 있음.
    doubleSmallNumber' = x = (if x > 100 then x else x*2) + 1
    • 하스켈의 함수 이름은 대문자로 시작할 수 없다.
    conanO'Brien = "It's a-me, Conan O'Brien!"
     

    list 소개

    • 하스켈의 복합 자료구조. 문자열(string)도 리스트.
    • 하스켈에서 리스트는 같은 자료형으로 구성된다.
    let lostNumbers = [4,8,15,16,23,42]
    • 문자열은 문자의 리스트이다. ['h','e','l','l','o']"hello"와 같다.
    • 리스트는 ++ 로 여러 개를 합칠 수 있다.
    [1,2,3,4] ++ [9,10,11,12] "hello" ++ " " ++ "world" ['w','o'] ++ ['o','t']