diff --git a/resources/public/index.html b/resources/public/index.html index cc1bec3..462941a 100644 --- a/resources/public/index.html +++ b/resources/public/index.html @@ -5,8 +5,8 @@ - 클로져 맛보기 - + 클로저 맛보기 + @@ -15,14 +15,14 @@ - + - + diff --git a/src/app/repl/core.cljs b/src/app/repl/core.cljs index 80ec90e..922260f 100644 --- a/src/app/repl/core.cljs +++ b/src/app/repl/core.cljs @@ -12,7 +12,7 @@ ;; Collection of map with the REPL command history. (defonce repl-history (r/atom [{:type :special - :value "여기에 클로져 표현식을 입력해보세요"}])) + :value "여기에 클로저 표현식을 입력해보세요"}])) ;; Store the REPL input while typed in the input el (defonce repl-input (r/atom nil)) @@ -103,7 +103,7 @@ (defn set-step "Navigate the tutorial to a specific step." [step] - (session/set! :step step)) + (session/set! :step step)) (defn set-prompt "Change the prompt style." diff --git a/src/app/session.cljs b/src/app/session.cljs index ce67d1f..a75dde1 100644 --- a/src/app/session.cljs +++ b/src/app/session.cljs @@ -3,7 +3,7 @@ (:require [reagent.core :as r])) (def initial-db - {:내-이름 "젊은 클로져인"}) + {:내-이름 "젊은 클로저인"}) (defonce session (r/atom initial-db)) diff --git a/src/app/tutorial.cljs b/src/app/tutorial.cljs index 5c43134..1faf2e2 100644 --- a/src/app/tutorial.cljs +++ b/src/app/tutorial.cljs @@ -11,7 +11,7 @@ :content "> 원칙을 배우고, 원칙을 따르고, 원칙을 없애라. - 브루스 리 - 기본부터 시작해봅시다. 클로져는 정수, 부울린, 문자열과 같은 가장 기본이 되는 타입들을 제공합니다. 문자열은 `\"`로 감쌉니다. + 기본부터 시작해봅시다. 클로저는 정수, 부울린, 문자열과 같은 가장 기본이 되는 타입들을 제공합니다. 문자열은 `\"`로 감쌉니다. *누리*에게 *안녕*이란 인삿말 문자열을 만들어 보세요`\"누리야 안녕\"`" :test #(= (string/lower-case %) "누리야 안녕")} @@ -21,10 +21,10 @@ :content "> 리스프는 역사상 가장 위대한 프로그래밍 언어이다. - 앨런 케이 - 리스프는 *리스트 프로세싱*을 나타내며, 특이점으로는 [리스트](https://en.wikipedia.org/wiki/S-expression)로 코드를 작성한다는 것입니다. 클로져는 리스프의 한 종류이기 때문에 비슷한 문법을 사용합니다. + 리스프는 *리스트 프로세싱*을 나타내며, 특이점으로는 [리스트](https://en.wikipedia.org/wiki/S-expression)로 코드를 작성한다는 것입니다. 클로저는 리스프의 한 종류이기 때문에 비슷한 문법을 사용합니다. 리스트는 `(1 2 3)` 처럼 아이템들의 모음입니다. - 클로져에선 `list` 를 이용하거나, `'` 를 앞에붙여 리스트를 만들 수 있습니다. + 클로저에선 `list` 를 이용하거나, `'` 를 앞에붙여 리스트를 만들 수 있습니다. 이제 리스트를 만들어 봅시다. 예로 `(list 1 2 3)` 혹은 `'(1 2 3)`." :test #(list? %)} @@ -32,14 +32,14 @@ ;; Math {:title "수학은 (즐거움)" :content - "클로져에서 수학 연산자들은 일반 함수들과 같습니다. + "클로저에서 수학 연산자들은 일반 함수들과 같습니다. 아시다시피, 괄호 `(...)` 안에 넣어야 합니다. 따라서, `4 + 2`대신에 `(+ 4 2)`라고 해야합니다. `+ - / *`를 이용해서 사칙연산을 수행해 보세요." :test #(number? %)} ;; Functions - {:title "클로져는 함수형입니다" + {:title "클로저는 함수형입니다" :content "> 리스프는 함수형입니다. 그리고 함수형이 미래로 보입니다. - 로버트 C. 마틴 @@ -82,7 +82,7 @@ "축하합니다. 함수를 호출하여 애플리케이션의 상태를 변경했습니다! 그리고 모든 명령어들은 리스트로 이루어져 있었습니다! - 클로져는 `reverse`와 같이 리스트를 다루는 여러 함수들을 제공합니다. 이 함수는 컬렉션을 뒤집어 줍니다. + 클로저는 `reverse`와 같이 리스트를 다루는 여러 함수들을 제공합니다. 이 함수는 컬렉션을 뒤집어 줍니다. 따라서, 문자열을 넣으면 문자들이 들어있는 컬렉션으로 인식하게 됩니다. `(reverse \"기나긴 문자열\")`을 입력하여 다음 단계로 나아가 봅시다." @@ -126,7 +126,7 @@ "> 컴퓨터가 이해할 수 있는 코드를 작성하는건 어떠한 바보라도 할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 작성한다. - 마틴 파울러 맵은 *키*와 *값*을 매핑하는 컬렉션입니다. `{ }`로 감싸져 있습니다. - 키로 아무거나 사용할 수 있지만, 클로져 프로그래머들은 주로 키워드를 이용합니다. + 키로 아무거나 사용할 수 있지만, 클로저 프로그래머들은 주로 키워드를 이용합니다. `{:국가 \"한국\"}`와 같이 `:국가`를 키로 하고, 가고싶은 국가를 문자열로 하는 맵을 만들어 보세요." :test #(and (map? %) (contains? % :국가) (string? (:국가 %)))} @@ -134,7 +134,7 @@ ;; F-list {:title "리스트의 처음(First)" :content - "클로져는 리스트에서 값을 추출하기 위한 몇가지 함수를 제공합니다. 예를 들어, `first`는 첫번째 요소를 반환합니다. + "클로저는 리스트에서 값을 추출하기 위한 몇가지 함수를 제공합니다. 예를 들어, `first`는 첫번째 요소를 반환합니다. `(first '(\"한놈\" \"두시기\" \"석삼\" \"너구리\" \"오징어\"))`를 입력해서 첫번째 요소를 얻어보세요." :test #(and (string? %) (= "한놈" %))} @@ -142,7 +142,7 @@ ;; Range {:title "N의 범위(Range)" :content - "클로져 함수 `range`는 0부터 `n`하나 전까지의 숫자 리스트를 만듭니다. + "클로저 함수 `range`는 0부터 `n`하나 전까지의 숫자 리스트를 만듭니다. 즉, `(range 5)`는 0부터 4까지의 숫자를 반환합니다. `(doc range)`를 입력해서 문서를 확인해보세요. 0부터 99까지의 범위를 구해보세요. 타이핑이 귀찮으시다면 `(range 100)`를 클릭하세요 ^^" @@ -162,7 +162,7 @@ {:title "리스트에 함수 적용시키기" :content "100보다 작고 11의 배수인 숫자들을 찾기 위해서는, `5 * 10 + 5 = 55`와 같이 1부터 9까지의 각각의 숫자에 10을 곱하고, 숫자를 더하면 됩니다. - 클로져에서는 `map`을 이용해서 위와 같은 작업을 할 수 있습니다. + 클로저에서는 `map`을 이용해서 위와 같은 작업을 할 수 있습니다. `map`는 리스트의 모든 요소에 함수를 적용합니다. @@ -186,16 +186,16 @@ "> 새로운 프로그래밍 언어를 배우는 유일한 방법은, 그 언어로 프로그램을 작성하는 것이다. - 커니핸(Kernighan) 그리고 리치(Ritchie) 이제까지 REPL에서 코드를 입력하고 테스트하는 방식으로 문제를 해결해 왔습니다. - 바로 클로져 인들이 하는 것처럼 말이죠! 컴파일하고 나중에 디버깅하는 것보다, 바로바로 코드를 입력하면서 테스트하는 것이 더 빠릅니다! + 바로 클로저 인들이 하는 것처럼 말이죠! 컴파일하고 나중에 디버깅하는 것보다, 바로바로 코드를 입력하면서 테스트하는 것이 더 빠릅니다! - 이제까지 나왔던 것들보다 클로져로는 더 많을것들을 할 수 있습니다. `(더보기)`를 입력해서 마지막 단계로 가 보도록 하겠습니다." + 이제까지 나왔던 것들보다 클로저로는 더 많을것들을 할 수 있습니다. `(더보기)`를 입력해서 마지막 단계로 가 보도록 하겠습니다." :test #(true? %)} {:title "Clojure를 배울 시간이 되었습니다!" :content "> 초심자의 마음에는 많은 가능성이 있지만, 숙련자의 마음에는 거의 없다. - 초심자의 마음, 젠 마인드 - 보신것처럼 클로져는 어렵지 **않습니다**. + 보신것처럼 클로저는 어렵지 **않습니다**. 괄호, 함수, 불변 데이터구조 그리고 REPL이 여러분의 친구가 될 것입니다. 초심자의 마음을 잃지 마세요! diff --git a/src/app/views/common.cljs b/src/app/views/common.cljs index 3d6fdf5..63d5f66 100644 --- a/src/app/views/common.cljs +++ b/src/app/views/common.cljs @@ -27,7 +27,7 @@ "text-slate-700" "dark:text-white" "tracking-tighter"]} - "클로져 맛보기"]] + "클로저 맛보기"]] [:div {:class ["flex" "flex-row" "items-center" "justify-around"]} [:a {:href "https://github.com/lispkorea/tryclojure-kr" :target "_blank"} [:svg {:class ["text-gray-500" @@ -52,13 +52,13 @@ "TryClojure의 원 소스는 " [:a {:href "https://www.scotto.me" :target "_blank"} "Elia Scotto"] - "님께서 클로져스크립트로 " + "님께서 클로저스크립트로 " [:a {:href "https://github.com/eliascotto/tryclojure" :target "_blank"} "작성"] "하였습니다. " [:a {:href "https://github.com/borkdude" :target "_blank"} "Michiel Borkent"] - "과 엄청난 클로져 " + "과 엄청난 클로저 " [:a {:href "https://clojure.org/community/resources" :target "_blank"} "커뮤니티"] "에 감사드립니다."]