본문 바로가기

Programming Language32

JS33 - 24.컬렉션과 생성기(Collection and Constructor) 컬렉션 Collection JavaScript Collections Collections 프로그래밍 언어에서 Collection 이란 단어는 '프로그래밍 언어가 제공하는 값을 담을 수 있는 컨테이너' 라고 생각합니다. 메이저 프로그래밍 언어에는 여러가지 데이터 컬렉션들이 존재 velog.io 프로그래밍 언어가 제공하는 값을 담을 수 있는 컨테이너 Python - list, tuple, dictionaries … Java - ArrayList, HashMap, HashSet, Queue, Stack … Ruby - hashes, arrays Javascript(기존 Arrays + Objects, 이후 ES6에서 새로 추가) Indexed Collection - Arrays, Typed Array Keye.. 2021. 6. 23.
JS33 - 23.재귀함수(Recursive Function) 함수 그 자체에서 자기 자신을 호출하는 함수 자바스크립트에서 재귀 함수를 구성 할 때는 Leave Event가 있어야 합니다. Leave Event? 함수가 재귀 루프를 종료 할 수 있게 하는 제어문. if문, 삼항인수, switch문 등이 될 수 있다. 프랙탈, 정렬 또는 복잡한 또는 비선형 데이터 구조의 노드 탐색과 같은 반복 분기와 관련된 문제를 해결하는 데 가장 효과적입니다. 함수형 프로그래밍 언어에서 재귀를 선호하는 한 가지 이유는 로컬 변수를 사용하여 상태를 설정 및 유지 관리 할 필요가 없는 코드를 생성 할 수 있기 때문입니다. 재귀 함수는 주어진 입력에 대해 구체적이고 일관된 반환 값을 가지고 외부 변수 상태에 대한 부작용이 없는 순수한 방식으로 작성하기 쉽고 자연스럽게 테스트하기 쉽습니다.. 2021. 6. 8.
JS33 - 22.고차함수(Higher Order Function) 고차함수란? 고차 함수는 함수 인수를 받거나 함수를 반환하는 함수입니다. ( === 함수를 주고받는 함수) map(),reduce(),filter(),setTimeout(),addEventListener(),bind() …. // ES6 version const characters = [ {name: 'Luke Skywalker', img: 'http://example.com/img/luke.jpg', species: 'human'}, {name: 'Han Solo', img: 'http://example.com/img/han.jpg', species: 'human'}, {name: 'Leia Organa', img: 'http://example.com/img/leia.jpg', species: 'hum.. 2021. 6. 8.
JS33 - 21.클로져(Closure) 정의 #1 : 클로저는 스코프가 닫힌 후에도 상위 스코프에 접근 할 수 있는 함수입니다. 정의 #2: 클로저는 함수와 해당 함수가 선언된 ‘lexical environment’의 조합입니다. //this is closure's global scope function outie(){ // this is closure's first and only outer scope function closure(){ // this is closure's local scope } } closure는 외부의 변수를 기억하고 접근할 수 있는 함수입니다(스코프 체인에 값에 대한 참조를 저장한다). 몇몇 언어에서는, 이러한 구현이 불가능합니다. 또한 이러한 일이 일어나게 하기 위해서는 함수를 특별한 방법으로 작성해야 합니다. 하.. 2021. 6. 8.
[번역]Currying in Javascript 자바스크립트 커링 JS 공부중 도움이 되는 글을 번역한 게시글입니다. Author: Rémi Original Post: Currying in JS 커링은 모든 함수형 프로그래밍 언어의 중심에 있는 중요한 개념이다. 커링이 무엇이고 왜 사용해야하는지 살펴보자. 커링이란? 커링은 N개의 항수(인자)를 갖는 함수 하나를 1개의 항수(인자)를 갖는 N개의 함수로 만들 수 있는 수단입니다. 요컨대, 커링을 사용하면 함수 하나를 호출할 때 한번에 모든 인자를 정확히 지정하지 않아도 됩니다. 간단한 예제를 보겠습니다. 아래와 같은 방식이 익숙할 것입니다. const add = (a, b) => a + badd(1, 2) //should return 3 커리를 적용하면, 대신 이런 방식을 사용할 수 있습니다. const add = a .. 2021. 6. 3.
JS33 - 20.Pure function, Side effect, Mutate Pure function 순수함수 동일한 인수가 주어지면 항상 동일한 결과를 반환하는 함수 함수실행 중에 변경되는 상태 또는 데이터에 종속되지 않는다. 인자에만 의존해야 합니다. 이 함수는 네트워크 요청, 입력 및 출력 장치 또는 데이터 돌연변이와 같은 관측 가능한 부작용을 생성하지 않는다. Clojure와 Scala에서 파생된다. Procedure programming 전역 변수 또는 클래스의 인스턴스는 순수 함수 내에서 합법적 인 변수로 간주되지 않습니다. 변수의 전역 범위는 순수 함수의 생성에 사용되지 않습니다. 장점 및 필요성 Side effect(외부와의 상호작용)이 없다. (Side effect 자체는 나쁘지 않지만 포함되면 순수함수가 아니다) Making a HTTP request Mutat.. 2021. 6. 3.