일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- stringprintf
- Android
- WebView
- SHA1
- Observer
- design pattern
- coroutines
- sprintf
- Clojure
- async
- Scala
- Reflect
- RAII
- AES
- type_traits
- Chrono
- SHA512
- go
- program
- traits
- ChromeTab
- Functional
- haskell
- c++
- ranges
- sha256
- CustomTab
- template
- kotlin
- web
- Today
- Total
목록분류 전체보기 (82)
프로그래밍 검색 블로그
일단 기초적인 함수부터 시작해서 factorial 값을 구하는 함수이다 1234(defn fac [x] (if (
함수를 만들때는 defn 를 사용한다 12(defn square [x] (* x x))(println (square 3))cs 단순히 제곱시키는 함수인데 특이한게 전부 제네릭으로 되어서 인자를 받지 않는다 함수를 호출할때 (square "a")같이 문자열로 넣게 된다면 런타임 에러
clojure 에서는 거의 모든것이 함수인데 (함수이름 인자1 인자2...) 같은 방식으로 사용이 가능하다 물론 이러한 방식은 사칙연산 마저 예외가 아니라서 2 + 2 * 2 같은 수식을 계산하여 출력 하려면 12;error(println (2+2*2))cs 이렇게 실행시키면 에러가 나고 이렇게 함수호출을 통해서 사용해야 한다 12;ok(println (* (+ 2 2) 2))cs 조건 검사또한 이렇게 인자를 3개 받는 if 함수와 operator> 함수를 통해서 사용해야한다 1(println (if (> 1 2) "if" "else"))cs 위 코드를 C계열 언어에서는 1234if(1 > 2) print("if")else print("else")cs lisp 계열의 이러한 함수호출 방식은 괄호 이외의 ..
원래 lisp형태처럼 괄호가 있는 언어는 별로 선호하지 않았지만 clojure의 필요성에 따라서 배우게 되었다 1(println "hello world") cs 기본적인 C 스타일 문법과는 약간 다른데 이렇게 작성했던 구문을 123 for(int i = 0; i
1234567void testException(){ try{ //throw... } catch(std::exception& e){ cout
인자로 받은것이 아닐때까지 필터링한다 123 vector v = {7,6,4,1,2,3,4,5}; auto a = v | view::delimit(3); cout
개수 N을 입력받고 범위의 끝이 나올떄까지 N을 그룹으로 하여 배열을 나눈다 N이 0이면 에러, 범위 이상이면 빈 배열을 반환한다 1234 for(int i = 1; i
zip_with는 묶는 방법을 위한 함수를 넘겨줘서 두 리스트를 하나로 만든다길이가 다를 시에는 짧은쪽을 기준으로 한다 1234567 vector v1 = {1, 2, 3, 4, 5, 11}; vector v2 = {6, 7, 8, 9, 10}; auto z = view::zip_with(std::multiplies(), v1, v2); cout
range 2개를 조합 123456789 vector v1 = {1, 2, 3, 4, 5}; vector v2 = {6, 7, 8, 9, 10}; auto z = view::zip(v1, v2); for(const auto& e : z) { //아직 view::all(z)를 통한 pair 특수화는 없는듯 하다 cout