가변/불변 바인딩
이다는 const(불변), 넣는다는 let(가변).
불변 이름에 바꾼다를 쓰면 리졸버 에러가 발생한다.
이름은 "철수"이다. # const, 재대입 불가
점수에 0을 넣는다. # let, 재대입 가능
점수를 점수 + 10으로 바꾼다.
Release Notes
지음의 버전별 변경 사항을 정리합니다.
v0.2 연구 위에 코어 문법을 넓힌 단계. 메시지 프레임은 건드리지 않고, 제어 구문과 바인딩 표면 문법을 확장했다.
이다는 const(불변), 넣는다는 let(가변).
불변 이름에 바꾼다를 쓰면 리졸버 에러가 발생한다.
이름은 "철수"이다. # const, 재대입 불가
점수에 0을 넣는다. # let, 재대입 가능
점수를 점수 + 10으로 바꾼다.
동사의 연결형 어미 ~고(돌려주고, 출력하고, 바꾸고)로
then절을 닫고 아니면으로 else절을 연결한다.
만약 prefix도 사용할 수 있다.
작은수 == 0이면 큰수를 돌려주고 아니면 최대공약수(작은수, 큰수 % 작은수)를 돌려준다
만약 숫자 > 0이면 "양수"를 출력하고 아니면 "음수"를 출력한다
가격이 10000보다 크면 "비싸다"를 출력하고 아니면 "괜찮다"를 출력한다
X를 Y한 것이다는 X으로 Y와 동일한
Y(X) 호출로 낮춰진다. 한국어 관형형 어미 한으로
자연스러운 어순을 표현한다.
결과는 5를 두배한 것이다.
결과는 -7을 절대값한 것이다.
목록[인덱스]를 값으로 바꾼다 형태로 목록 원소를 제자리 수정한다.
상대적 변화(만큼 줄인다/늘린다)도 사용 가능하다.
숫자들은 [10, 20, 30]이다.
숫자들[1]을 99로 바꾼다.
숫자들[0]을 3만큼 줄인다.
<컬렉션>의 각각 <변수>에 대해 형태로
목록의 각 요소를 순회한다. while + 인덱스 패턴 없이 간결한 반복이 가능하다.
과일들은 ["사과", "배", "감"]이다.
과일들의 각각 과일에 대해
과일을 출력한다.
<이름>에(는) <값>이/가 있다 형태로
불변 바인딩을 만든다. 이다와 동일한 const 의미이며,
컬렉션에 더 자연스러운 한국어 표면 문법을 제공한다.
냉장고에는 ["우유", "계란", "버터"]가 있다.
냉장고의 각각 재료에 대해
재료를 출력한다.
합격이면, 사이다 등이 잘못 분리되던 문제 해결 (P-1~P-3)
이면/이다 분리 회귀 수정 —
P-3 수정 시 빠진 화이트리스트 복구
새 기능을 대량으로 연 버전이라기보다, 메시지 프레임의 해석 우선순위와 확장 정책을 고정한 단계.
보다 크면/작으면/같으면/다르면으로 한국어 어순의 자연스러운 비교문.
점수가 60보다 크면
"합격"을 출력한다.
만큼 줄인다/늘린다로 값을 상대적으로 변경한다.
점수를 10만큼 늘린다.
체력을 5만큼 줄인다.
맨위 외에 맨뒤, 맨앞 요소 접근과
고른 것이다/고른다 선택 프레임을 추가했다.
첫번째는 목록에서 맨앞 요소를 꺼낸 것이다.
마지막은 목록에서 맨뒤 요소를 꺼낸 것이다.
선택은 목록에서 고른 것이다.
receiver + selector + arguments
형태의 Send 공통형으로 설명하기로 확정
A의 B는 항상 속성 접근 우선,
built-in noun message 해석은 lowering/runtime 단계로 위임
A으로 B는 모든 호출이 아닌 unary transform frame으로 제한
문장형 코어와 실행 경로를 세운 단계. 지음의 첫 공개 버전.
의 속성 접근X으로 Y, X 더하기 Y, 에 추가, 레코드로 호출한다