티스토리 뷰

마지막으로 조금 남은 기초 용어들에 대해서만 정리합니다.

 

  • Lift
    • 함수와 파라미터를 받아 함수에 파라미터를 적용한 결과를 반환하는 것. 이 때, LiftA2, Lift 가 있고 전자는 2개 인자를 받아 map, ap을 적용하고 후자는 map을 적용합니다.
  • Equational Reasoning
    • 응용 프로그램이 부수 효과가 없는 순수 함수(표현식)들로만 구성되었다면 최종 시스템은 부분들로부터 유도가 가능하다는 추론입니다.
    • 두 표현식은 아래 조건의 경우 동등합니다
      • 두 표현식이 같은 값을 평가하거나,
      • 두 표현식이 모두 무한 루프를 돌거나,
      • 두 표현식이 모두 같은 예외를 던지거나.
    • 아래의 규칙에 의존할 수 있습니다.
      • 반사성(reflexivity) : 어떤 표현식 e 에 대하여 e == e 입니다.
      • 대칭성(symmetry) : 표현식 e1, e2 에 대하여 e1 == e2 이면 e2 == e1 입니다.
      • 전이성(transitivity) : 표현식 e1, e2 그리고 e3 에 대하여 e1 == e2 이고 e2 == e3 이면 e1 == e3 입니다.
      • 적합성(congrueence) : 표현식 e1, e2 그리고 e 에 대하여 e1 == e2 이면 e[e1/x] == e[e2/x] 입니다.
      • 알파동치(alpha-equivalence) : 표현식 e1, e2 에 대하여 e1 이 e2 에서 변수 이름만 다른 경우 e1 == e2 입니다.
      • 문법 설탕(syntatic sugar) : 정의에 의하여 함수 f 가 x = e 로 정의되면 이름 있는 함수 fun : x → e 가 있을 때 둘은 같습니다.
      • 평가(eval) :  표현식 e1, e2에 대하여 e1의 평가 결과가 e2라면(e1 → e2) e1 == e2 입니다.
      • (1)  1 == 1                                        (reflexivity)


        (2)  let x = 3 in x + x == let x = 3 in x + x      (reflexivity)


        (3)  1 + 2 == 3                                    (eval)


        (4)  3 == 1 + 2                                    ((3), symmetry)


        (5)  -5 + 8 == 3                                   (eval)


        (6)  -5 + 8 == 1 + 2                               ((4), (5), transitivity)


        (7)  let x = 1 in x == let y = 1 in y              (alpha)


        (8)  1 + 2 == (fun x -> 1 + x) 2                   (eval, symmetry)


        (9) let f x = x+1 in f 3
             == let g = fun y -> y+1 in g 3                (alpha (twice), syntactic sugar)




        (10) (fun x -> 1 + x) 2 == -5 + 8                  ((6), (8), transitivity, symmetry)


        (11) (-5 + 8) * y == (1 + 2) * y                   ((6), congruence)
  • Lazy evaluation
    • 지연 평가
    • 표현식을 필요할 때까지 평가하지 않고 최대한 미루다가 정말 필요한 경우에 평가를 하는 방법
  • Monoid
    • 항등원을 갖는, 결합 법칙을 따르는 이항 연산을 갖춘 대수 구조
    • 공리
      • 임의의 
        에 대하여, 
         / 결합법칙
      • 임의의 
        에 대하여 
        가 성립하는 원소 
        이 존재한다. (만약 이러한 항등원이 존재한다면, 이는 유일하다는 것을 쉽게 보일 수 있다.) / 항등원 존재
    • 이항 연산을 갖춘 항등원이 존재하는 구조이므로,
      • Maybe
      • List
      • Ordering 등
      • Monad 또한 모도이드 처럼 동작
      • 전부 모노이드
  • Corecursion
    • co- 가 붙은 것들은 mathematical dual 이라 한다. '대비되는 개념'으로 간단히 생각할 수 있다(Co-monad, Co-monoid, Co-routine 등).
    • 공재귀.
    • 재귀가 기본 최소 단계(Base case)를 찾을 때까지(종료 조건 판별) 자가 호출을 통한 판별 방식이라면(Top-down), 공재귀는 최소 단계(Base case)에서 시작하여 목적하는 단계로 찾아가는 방법(Bottom-up).
    • 함수형 자료구조의 암묵적 infinite 자료구조의 finite 한 처리를 가능하게 하는 개념
    • 이러한 특성으로 Generator 생성시에도 사용됨
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함