Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

core.logic (Clojure)

4.871 visualizaciones

Publicado el

제 5회 Lisp seminar 발표자료 - 김선호

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

core.logic (Clojure)

  1. 1. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 김선호 Clojure, 웹개발이 다가 아니에요
  2. 2. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Clojure 가 잘할 수 있는 영역?
  3. 3. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Clojure 가 잘할 수 있는 영역? Java에 비해 편리한
  4. 4. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 chap16. 생각하는 프로그램
  5. 5. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 core.logic
  6. 6. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12
  7. 7. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12
  8. 8. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 1. 첫번째 빈 칸에 숫자 배치 2. 조건 부합 여부 확인 3. 다음 칸으로 이동하고 배치 4. 반복 행, 열, 서브그리드에서 유일한 숫자인가
  9. 9. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 이렇게?
  10. 10. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 이렇게!
  11. 11. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 원리는 별 것 아닙니다 https://www.jug.ch/events/slides/140225_Clojure_gix.pdf
  12. 12. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Data is Code is Data
  13. 13. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 명령형 vs. 선언형, 제약조건형
  14. 14. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 명령형 Imperative Programming The three keys needed... logic key functional key imperative key
  15. 15. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 명령형
  16. 16. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 선언형(논리 프로그래밍) Logic Programming Just one key is needed... Magic logic key
  17. 17. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 선언형(논리 프로그래밍) Logic Programming Just one key is needed... Magic logic key miniKanren
  18. 18. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12
  19. 19. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 What is logic programming? semantic elements logic programming querylogic variable free grounded knowledge base proposition predicate term finite domains constraints deduction depth-first search backtracking unificationinduction satisfying assignment
  20. 20. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 abstract ... concrete logic programming query knowledge base deduction satisfying assignment In which year was julia twice as old clodette? julia was born 2 years before clodette julia was born in 1978 age 2 N, 0  age  120 year 2 N, 1978  age  2098
  21. 21. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 어떻게 생겨먹었나.. joy.logic.planets http://bit.ly/2g4cfvV
  22. 22. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12
  23. 23. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 http://lanyrd.com/2012/euroclojure/stfyd/
  24. 24. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Logic Variable ?q
  25. 25. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Fact (relation source target) 개념상 그냥 제가 사용한 표현일 뿐, 공식 표현이 아닙니다..
  26. 26. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 간단한 예 (run* [q] (conso q [] [:a]))
  27. 27. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (conso q [] [:a])) => (:a) 간단한 예
  28. 28. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c])) 정답이 여러개?
  29. 29. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c])) => (:a :b :c) 정답이 여러개?
  30. 30. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run 1 [q] (membero q [:a :b :c])) => (:a) 정답이 여러개?
  31. 31. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero :b [:a :b :c])) 이건 뭐지?
  32. 32. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero :b [:a :b :c])) => (_0) 이건 뭐지?
  33. 33. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero :b [:a :b :c]) (== q true)) => (true) 단일화(unification)
  34. 34. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c]) (membero q [:b :c :d])) 조건이 여러개라면?
  35. 35. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c]) (membero q [:b :c :d])) => (:b :c) 조건이 여러개라면?
  36. 36. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c]) (membero :a [:b :c q])) 이런 것도 됩니다
  37. 37. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 (run* [q] (membero q [:a :b :c]) (membero :a [:b :c q])) => (:a) 이런 것도 됩니다
  38. 38. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 스도쿠로 돌아와서 조건 단일화 논리변수 초기화 답은 한 개만!
  39. 39. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 실행해볼까요? joy.logic.sdokufd http://bit.ly/2eLT44W
  40. 40. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 그래서.. 어디에 써먹나? (논리적?) 데이터베이스
  41. 41. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 SELECT * FROM GEEKS WHERE GEEK_ID=0; geed_id geek_name 0 Archimedes Tuesday, 22 May 2012
  42. 42. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12
  43. 43. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Datomic
  44. 44. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Datomic 질의언어: Datalog https://en.wikipedia.org/wiki/Datalog
  45. 45. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 Datalog 하둡기반 데이터 처리/질의 RDF 데이터 질의 프레임워크
  46. 46. 제 5회 Lisp seminar @D2 STARTUP FACTORY, 2016.11.12 감사합니다! Facebook: @ksseono Twitter: @SeonhoKim

×