펑션,function

프로그래밍에서 함수: 어떤 계산을 수행하는 문장들에 이름을 붙인 것.
함수를 정의한다는 것: 이름을 지정하고 문장들의 순서를 지정한 것. 이후에 이름으로 함수를 “호출,call”할 수 있음. (Think Python)


이거 pagename을 펑션 보다는 루틴,routine 서브루틴,subroutine으로 하는 건 어떤가?

기능,function이라는 뜻도 있다
NdEn:function
WtEn:function

다음 것들과 매우 밀접하고 어쩔 땐 거의 같거나 완전히 같을 때도 있는데 chk + mkl
and rel.: 대응,correspondence 관계,relation 사영,projection
위 목록끼리 할 수 있는 게


1. Sub (특정 이름의 function)

1.3. (esp. labmda calculus)

1.3.1. application

위에 apply랑 같은 거? chk

자료 F, 자료 A가 있다면
F·A
는 F는 입력,input A에 "적용"되는 알고리듬으로 간주할 수 있다.
이걸 두 가지 방법으로 보면
1. 계산 과정 FA. - captured by the notion of conversion, and even better of reduction. // 전환,conversion? =,conversion . conversion { conversion } // conversion Ggl:conversion KmsE:conversion
2. 이 과정의 출력,output. - captured by the notion of models(시맨틱스,semantics).
type-free라서, FF같은 것도 있다. 이 땐 재귀,recursion를 시뮬레이트하기에 유용하다.
(Barendregt 2000 p7)

1.3.2. abstraction

만약
M≡M[x]
가 x를 포함한('x에 의존하는') 식,expression이라면
λx.M[x]
는 함수 x ↦ M[x] 를 뜻한다denote.

ex.
λx.2*x+1

x ↦ 2*x+1

일반적으로
(λx.M[x])N = M[N]
이다. 더 보기 좋게preferably 이렇게도 쓸 수 있다.
(λx.M)N = M[x:=N]
여기서 [x:=N] denotes substitution of N for x. // 치환,substitution

(Barendregt 2000 p7)


2. Sub (function)

2.1. function call

function call = call
함수호출 펑션호출 functionl_call or 그냥 호출,call

2.2. function composition

2.3. function inlining / inline function

2.4. intrinsic function

intrinsic function
컴파일러,compiler컴파일,compile 컴파일,compilation? WtEn:compile WtEn:compilation 할 때 특별 취급해주는.

(특정 architecture/compiler/...에서 이런 펑션들을 종합적으로 일컫는 표현이 'intrinsics'.)
나는 그냥 'intrinsics'라고 해야 와닫는다. ~function 표현은 we에서 처음 보고 이게 뭐지 했는데.



2.5. first-order function

2.6. second-order function (?)


2.7. (third-order function and so on...?)


2.8. higher-order function (HOF)

2.9. pure function

pure function
pure_function - 부수효과/부작용/side_effect가 없는
WtEn:pure_function
WpEn:Pure_function
Ggl:pure function

2.10. impure function

impure function
impure_function - 그렇지 않은
{
function : pure if ...
programming_language : purely functional if evaluation of expressions is pure.
https://wiki.haskell.org/Pure


2.12. virtual function

virtual_function =,virtual_function . virtual_function
{
virtual function
WtEn:virtual_function "syn. virtual_method" => WtEn:virtual_method "A 메소드,method whose behavior can be overridden within an inheriting class by a method with the same signature{ pagename? }."

todo
mkl vtable / virtual_table
cmp virtual_class curr at 클래스,class
"virtual function"
}

3. Sub ('functional')

// functional-

3.1. functional programming

functional_programming =,functional_programming . functional_programming =,fp . fp
{
functional programming
https://wiki.haskell.org/Functional_programming
https://wiki.haskell.org/Functional_programming/Old_version
"functional programming"
}

3.2. functional dependency

functional_dependency =,functional_dependency . functional_dependency
{
functional dependency
함수의존성 ?
함수적의존성 ?
함수형의존성 ?


dependency ... 의존성,dependency?
"functional dependency"
}

4. CS function이 가질 수 있는 성질

4.2. referential transparency

4.3. referential opacity

referential_opacity
referential opacity


참조 불투명 ?
참조불투명성 - pagename?

referentially opaque adj.
referential opacity n.



ex.
난수생성함수 (rel. RNG random_number_generator )

4.4. returns nothing -> void function ?


아무것도 안 돌려주는 function, (리턴,returns none/nothing)
C에서 type이 void인 function, // return_type is void
..

즉 side_effect 에만 의지하는.
결과,result를 돌려주지 않는.

PL별로
C(and its descendants): void type 선언
Python에선 선언 뒤에 -> None ??
Pascal에선 function이 아닌 procedure로 선언
QuickBASIC에선 DECLARE FUNCTION이 아닌 DECLARE SUB 인가? 오래 안써서 기억이...
Visual Basic에선 Function이 아닌 Sub ??
....

6. PL Syntax

function_definition
function_declaration syntax가 다른데 이걸 나열할 필요가 있을지, 아무튼.
각각
정의,definition
선언,declaration