코드 조각

평범한 한글은 많이 써보고 익혀야만 눈과 손에 익숙해 지는 언어다.
처음에는 암호 같은 한글의 자모들의이 어떤 의미인지를 알게 되면 이들이 하나의 '말'로 보이기 시작한다.
 

함수

실수 하나(여기서는 3)를 받아서 두 번 더하는 함수
ㄹ (target number) ㄱㅇㄱ ㄱㅇㄱ ㄷㅎㄷ ㅎ ㅎㄴ
 
함수 객체 하나를 받아서 두 번 더하는 함수
ㄹ ㅎ ㄱㅇㄱ ㅎㄱ ㄱㅇㄱ ㅎㄱ ㄷㅎㄷ ㅎ ㅎㄴ
 
  • 함수는 한 개의 객체만을 넘긴다.
    • ㄹ ㅁ ㅎ ㄱㅇㄱ ㅎㄱ ㄱㅇㄱ ㅎㄱ ㄷㅎㄷ ㅎ ㅎㄴ

    드나듦

    입력 값에 1을 더해서 반환하는 함수
    (ㄹㅎㄱ) (ㄱㅇㄱ ㅅㅅㅎㄴ ㄴ ㄷㅎㄷ ㄱㅅㅎㄴ ㅎ) ㄱㄹㅎㄷ
    • 화면에 0을 출력하는 코드
      • ㄱ ㅁㅈㅎㄴ ㄱㅅㅎㄴ ㄱㅇㄱ ㅈㄹㅎㄴ ㅎ ㄱㄹㅎㄷ
    • 두 개의 숫자를 입력받아 첫 번째 수를 두 번째 수로 거듭제곱하여 출력하는 코드
      • ((ㄹ ㅎㄱ, ㄱ ㅇㄱ ㅅㅅ ㅎㄴ ㄱㅅ ㅎㄴ ㅎ) ㄱㄹ ㅎㄷ) (ㄱ ㅇㄱ ㄱ ㅇㄱ (ㄱ ㅇㄱ ㄴ ㅇㄱ ㅅ ㅎㄷ)) ㅁㅈ ㅎㄴ ㅈㄹ ㅎㄴ ㅎ ㄱㄹ ㅎㄹ ㅎ ㅎㄴ
    • 0을 입력할 때 까지 입력받은 모든 실수를 더하는 코드
      • ㄱ [ (ㄹㅎㄱ ㄱㅇㄱ ㅅㅅㅎㄴ ㄱㅅㅎㄴㅎ ㄱㄹㅎㄷ) { (ㄱㅇㄴ ㄱㅅㅎㄴ) (ㄱㅇㄴ ㄱㅇㄱ ㄷㅎㄷ ㄴㅇㅎㄴ) (ㄱㅇㄱ ㄱ ㄴㅎㄷ) ㅎㄷ ㅎ } ㄱㄹㅎㄷ ㅎ ] ㅎㄴ
         
         
    • 0에서 8까지 출력하는 코드
      • [ def print_and_call_this_again (x): # Number -> IO {ㄱㅇㄱ ㅁㅈㅎㄴ ㅈㅀㄴ} # Print(x) { def recursion_caller (unused): # Nil -> IO (ㅂㄱㅎㄱ ㄳㅎㄴ) # return Wrap(Nil()) (ㄱㅇㄴ ㄴ ㄷㅎㄷ ㄴㅇㅎㄴ) # return print_and_call_this_again(x+1) (ㄱㅇㄴ ㄱㄴㄱ ㄴㅎㄷ) ㅎㄷ # if x == 8 ... else ... ㅎ} ㄱㅀㄷ # return Bind(Print(x), recursion_caller) ㅎ] ㅎㄴ # returns an IO Object
        ... in JS
        function Print (x) { return new Promise(function (resolve, reject) { console.log(x) resolve(null) }) } function Wrap (x) { return Promise.resolve(x) } function print_and_call_this_again (x) { function recursion_caller(_) { return (x == 8) ? Wrap(null) : print_and_call_this_again(x+1) } return Print(x).then(recursion_caller) } print_and_call_this_again(0)