일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Rails
- Java
- JavaScript
- Spring
- 프로그래머스
- 로버트마틴
- 람다 칼큘러스
- functional programming
- exception
- Eclipse
- 스택
- Pattern
- Collections
- JDBC
- tcp
- 자바
- DesignPattern
- 겨울카카오인턴
- Python
- design-pattern
- 백준
- javscript
- 디자인패턴
- solid
- 큐
- Collection
- Network
- lambda calculus
- 함수형 프로그래밍
- 파이썬
- Today
- Total
목록컴퓨터 언어/함수형 프로그래밍 (13)
개발자 노트
참조모나드 영어 위키 - https://en.wikipedia.org/wiki/Monad_(functional_programming)함수 영어 위키 https://en.wikipedia.org/wiki/Function_(mathematics)함수 한글 위키 - https://ko.wikipedia.org/wiki/함수도입이번에는 글의 흐름을 다르게 진행해보려고 합니다.모나드가 무엇인지 바로 말씀드리지 않고, 연속적으로 함수의 합성할 때 마주하는 문제점을 고민 해보고, 해결 방법을 제시함으로써 모나드(라고 불릴만한 것)을 이해해보도록 하겠습니다.그래서 먼저 함수가 무엇인지 다시 살펴봄으로써 이해를 높힌 뒤 문제되는 예제를 설명드리겠습니다.개인적인 견해가 있으므로 참고하시어 읽어주세요. 그래서 제목에서 보시..
User들을 1. 성을 기준으로 정렬 2. 성이 동일할 경우 이름으로 정렬 3. 그리고 List로 반환하라. 라고, 정렬 기준이 두 개일 경우에 대한예제를 만들어 보았습니다. 그리고 method reference, lambda expression 을 통해서 문제를 작성해보았는데요... 이게 왠 걸... lambda expression으로 작성한 예제는 컴파일 에러가 발생합니다. 띠용! 타입을 잘 추론 못하나...? 완전 같아보이는데 말이죠 -- 차후 작성
최근에 Modern Java In Action 책을 보았습니다. 매우 감명받았죠. 함수형 프로그래밍, Java API 공부할 땐 책을 봐야겠구나 느꼈습니다. 구글링에 비해 책이 내용이 알차고 신뢰도도 매우 높았습니다. 무려! 자바챔피언, 교수2, 엔지니어1이 작성한 책이니까요. 여튼, stream api를 공부하고 작성한 코드들을 두어보겠습니다. 그리고 왜 이렇게 코드를 작성했는 지 그 아이디어를 차차 공유해보도록 하겠습니다. https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. ..
도입 lazy evaluation 개념자체는 어렵지 않습니다. 그래서 이번엔 활용성 측면 위주로 설명드리도록 하겠습니다~ 배경 지식 여태 expression과 evaluation이 헷갈리시다면 아래 글을 참조하시면 좋을 것 같습니다. https://jurogrammer.tistory.com/129 정의 evaluation 전략 중 하나로 expression의 value가 필요할 때까지 evaluation을 미루는 전략이라고 보시면 됩니다. 보통 성능 개선을 목적으로 lazy evaluation을 사용하지요. 어떻게 evaluation을 미룬 어떻게 성능을 개선할 수 있는지 한 번 살펴보겠습니다. 성능 개선의 예시 특정 조건을 만족해야만 해당 value를 사용하는 예시입니다. import time def ..
도입 closure를 영단어로 검색해봅시다. 영사전 an act or process of closing something, especially an institution, thoroughfare, or frontier, or of being closed. 폐쇄의 의미를 가지고 있죠. 그래서 처음 closure를 공부했을 때 전혀 와닿지 않았습니다. 뭐가 폐쇄되있다는 거죠? 오늘은 이 베일을 벗겨보겠습니다! closure 개념 lambda calculus는 1930년도에 나온 개념이고 closure는 1960년도에 나온 개념입니다. Peter J. Ladin이라는 사람이 1964년도에 labmda calculus expression을 평가하는 머신을 고안하는데 처음 정의되었습니다. 그후 1970년도에 Jo..
계기 이번은 좀 서론이 기네요... 넘어가셔도 좋습니다. 시작은 flux개념을 이해하는데에서 시작했습니다. 그래서 redux + canvas로 벽돌 깨기를 구현하고 있었습니다. (뭐 어떻게 삽질하니 react를 제외하고 redux만 사용이 가능하더라구요? ) 문제 - 상태 변경시, 관련된 renderer에게만 notify하고 싶다. redux에서는 상태변경시 특정 상태 변경에 대해 subscribe중인 rendering 로직이 실행됩니다. 예를 들면 공이 벽돌과 충돌한 action이 있다면 벽돌이 부셔져야겠지요? 그래서 벽돌 상태를 inactive정도로 변경했다면 벽돌을 그리는 담당을 하는 render function만 실행해야겠죠? 그런데 redux에서는 rootState로 관리하고, rootState..
출처 https://www.youtube.com/watch?v=3VQ382QG-y4 lambda calculus, boolean으로 표현! 이번 글에서는 lambda calculus가 어떻게 boolean 연산으로 전환될 수 있는지에 대해 알아보는 시간을 갖도록 하겠습니다. 출처에 적힌 내용을 바탕으로 설명드리도록 하겠습니다. 위키에 있는 내용만으로는 이해가 잘 되지 않아서 해당 유튜브를 참고했네요. 글의 구성 이 글은 총 2편에 걸쳐 작성할 것입니다. 첫 편에서는 lambda calculus에서 쓰이는 용어 대신 새의 이름으로 치환하여 함수를 소개할 것입니다. 그러면 선입견과 위화감을 줄이는데 큰 도움이 되거든요~ 그리고 다음 글에서는 어떻게 새의 이름을 실제 lambda calculus의 boolea..
출처 https://en.wikipedia.org/wiki/Lambda_calculus Reduction reduction의 사전적 정의는 다음과 같습니다. the action or fact of making a specified thing smaller or less in amount, degree, or size. 번역하자면 특정한 것의 양, 차원, 사이즈를 줄이는 행위 또는 사실이라고 말할 수 있습니다. meaning wiki에서 reduction의 도입부에 다음과 같이 말합니다. The meaning of lambda expression is defined by how expressions can be reduced lambda calculus의 의미는 expression이 얼마나 축소되는지에 따..
참고자료 https://en.wikipedia.org/wiki/Lambda_calculus#:~:text=Lambda%20calculus%20(also%20written%20as,to%20simulate%20any%20Turing%20machine. 개요 이전 게시글에선 lambda calculus를 informal하게 설명해드렸다면 이번엔 좀 더 수학적으로 정의한 것을 말씀드리는 시간을 갖도록 하겠습니다. lambda caclulus에 대해 깊숙히 알아가려고 한다면 formal하게 정의하는 방법을 숙지해야겠죠. 자료들은 formal하게 쓰여있으니까요... Formal definition lambda expression의 구성요소 variables v1, v2... 변수 v1,v2.... the abst..
출처 https://en.wikipedia.org/wiki/Lambda_calculus 선행 자료 https://jurogrammer.tistory.com/131 lambda caclulus Intro https://jurogrammer.tistory.com/132 Formal System 개요 이번 글에선 lambda calculus를 informal하게 설명하겠습니다. 그쵸.. 처음부터 formal하게 설명하면 머리아픕니다. 맥락을 파악하기 어렵구요. 따라서 formal한 정의와 사칙연산, boolean등으로 simulate하는 것은 다음에 알아보도록 하겠습니다. lambda caculus를 다시 설명하자면 다음과 같죠. formal system인데, computation 표현하기 위한 mathmet..