⌨️Developer

고차 함수 고차 함수(Higher-order function)란 다른 함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다. 고차 함수는 함수형 프로그래밍에서 핵심적인 개념 중 하나로, 함수를 이용한 추상화를 가능하게 합니다. 고차 함수를 사용하면 코드를 간결하게 작성할 수 있고, 코드의 재사용성이 높아집니다. 일급 객체(First-class citizen)란 프로그래밍 언어에서 어떤 값이나 객체가 다음과 같은 조건을 충족할 때를 말합니다: 변수에 할당될 수 있다. 함수의 인자로 전달될 수 있다. 함수의 반환값으로 사용될 수 있다. 자료 구조에 저장될 수 있다. 함수형 프로그래밍 언어에서는 함수를 일급 객체로 취급합니다. 이 말은 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 반환값으로 ..
익명 함수 익명 함수(anonymous function)는 이름이 없는 함수를 의미합니다. 일반적으로 함수를 정의할 때, 함수의 이름을 지정하여 참조하거나 호출할 수 있지만, 익명 함수는 이름이 없기 때문에 일회성으로 사용되거나 다른 함수에 인자로 전달됩니다. 익명 함수는 함수형 프로그래밍(Functional Programming Language)에서 주로 사용되지만, 몇몇 명령형 언어(Imperative Programming Language)에서도 사용 가능합니다. 함수형 언어는 함수를 일급 객체(First-class citizen)로 취급하여, 함수를 변수에 할당하거나 다른 함수의 인자로 전달할 수 있습니다. 익명 함수의 주요 장점은 다음과 같습니다. 코드의 간결성: 이름이 없기 때문에 코드를 간결하..
· DEV/Backend
객체 지향 프로그래밍(Object-Oriented Programming, OOP) Intro. 프로그래밍 패러다임을 조곰 알고가자 객체 지향 프로그래밍(Object-Oriented Programming, OOP)과 절차 지향 프로그래밍(Procedural Programming)은 두 가지 다른 프로그래밍 패러다임입니다. 절차 지향 프로그래밍 순차적인 프로그래밍 접근 방식 프로그램이 일련의 절차 또는 단계에 따라 실행 이러한 절차는 종종 함수 또는 프로시저로 묶임 절차 지향 프로그래밍의 주요 목표는 프로그램의 흐름을 제어 Ex. C 언어 객체 지향 프로그래밍 프로그램을 여러 개의 독립적인 객체로 구성하는 프로그래밍 접근 방식 객체는 데이터와 이 데이터를 조작하는 메소드를 포함 객체 지향 프로그래밍의 주요 ..
람다 대수 베타 축약 람다 대수의 베타 축약(Beta-reduction)은 람다 대수에서 함수 적용을 수행하는 과정입니다. 함수와 인자를 결합하여 하나의 표현식으로 줄이는 과정으로, 계산의 기본 단위를 나타냅니다. 베타 축약은 람다 대수의 핵심 연산으로, 프로그램의 실행을 모델링하는 방법을 제공합니다. 베타 축약은 다음과 같은 기본 규칙을 따릅니다. (λx. E1) E2 → E1[x := E2] 이 규칙은 함수 (λx. E1)에 인자 E2를 적용하면 결과 표현식 E1[x := E2]가 생성된다는 것을 의미합니다. 여기서 E1[x := E2]는 표현식 E1에서 매개변수 x가 출현하는 모든 부분을 E2로 치환한 결과입니다. 실습 (λx. x + 1) 2 베타 축약을 적용하면 다음과 같이 계산할 수 있습니다...
어휘 분석(lexical analysis) 위의 사진에서 오늘은 Lexical Analysis에 대해 알아보겠습니다 Token : 문법적으로 의미가 있는 최소 단위 Pattern : 토큰을 서술하는 규칙 Lexeme : 패턴에 의해 매칭 된 문자열 Token에 관하여 토큰은 크게 Special form과 General form으로 나눌 수 있습니다. Special form은 언어 디자이너가 미리 정의한 단어들로, 예약어(keyword), 연산자(operator), 구분자(delimiter)가 해당됩니다. 예약어(keyword)는 프로그래밍 언어에서 미리 정의된 단어 조건문(if, else), 반복문(for, while), 데이터 타입(int, float) 등이 해당됩니다. 예약어들은 프로그래머가 변수명이..
프로그래밍 언어의 구성 프로그래밍 언어의 구성 요소는 크게 구문(Syntax)과 의미론(Semantics)으로 나눌 수 있습니다. 구문은 프로그래밍 언어의 문법적인 부분으로, 프로그래밍 언어에서 올바른 문장을 구성하는 방법을 정의합니다. 이를 통해 프로그래밍 언어를 구성하는 단어, 구문 구조, 문장 등을 정의할 수 있습니다. 언어의 표현식, 문장 그리고 프로그램 단위의 형식 일반적으로 문맥 자유 문법으로 기술 의미론은 프로그래밍 언어의 의미적인 부분으로, 프로그래밍 언어에서 올바른 의미를 가지는 문장을 구성하는 방법을 정의합니다. 이를 통해 프로그래밍 언어에서 올바른 실행 결과를 얻을 수 있도록 문장의 의미를 정의합니다. 표현식, 문장, 프로그램 단위에 대한 의미 연산 의미론, 공리 의미론, 표기 의미론..
함수형 프로그래밍이란 무엇인가 함수형 언어/프로그래밍의 느낌을 알기 전, 먼저 수학적 함수를 알고 가야 한다. 수학적 함수는 입력 값에 따라 출력 값을 만들어내는 블랙 박스와 같다 수학적 함수의 특징 입력 값에 따라 출력 값이 결정 된다 수학적 함수와 프로그래밍에서의 수학적 함수의 개념은 다르다 [[함수형 프로그래밍의 본질]] 함수형 프로그래밍 언어는 프로그램을 수학적 함수의 조합으로 본다 프로그램의 동작을 즉 수학적 함수로 표현한다 매개 변수로 값을 입력 받은 뒤 적절하게 처리하여 값을 출력한다 함수형 언어의 특징 명령형 언어와의 차이점 함수형 언어는 변수를 할당 할 때, 공간을 새로 할당 하지 않고, 순수 계산에 의존 합니다 명령형 언어는 메모리 공간에 값을 계속 바꾸며 상태를 추적합니다 상태의 개념..
berom
'⌨️Developer' 태그의 글 목록