«functional-programming» 태그된 질문

함수형 프로그래밍은 추상화를 구축하고 컴퓨터 프로그램을 구성하는 계산을 표현하는 수단으로 주로 함수를 사용하는 프로그래밍 패러다임입니다.

4
람다 미적분학에서 함수가 익명 인 것이 중요한 이유는 무엇입니까?
Jim Weirich의 ' 기능 프로그래밍 의 모험 '이라는 강의를보고있었습니다 . 이 강의에서 그는 Y- 콤비 네이터의 개념을 소개합니다.이 조합은 본질적으로 고차 함수의 고정 점을 찾습니다. 그가 언급 한 동기 중 하나는 람다 미적분학을 사용하여 재귀 함수를 표현할 수 있어야 교회의 이론 (실제로 계산 가능한 모든 것이 람다 미적분학을 사용하여 계산할 …

3
'a->'b 유형의 ML 함수
교수님은 OCaml에서 다음과 같은 유형의 함수를 생각해 보라고했습니다. 'a -> 'b 즉, 하나의 인수가 무엇이든 될 수 있고 다른 것을 반환 할 수있는 함수입니다. raise인수를 무시하는 함수를 사용하려고 생각 했습니다. let f x = raise Exit 그러나 교수는 표준 라이브러리에서 어떤 기능을 요구하지 않는 솔루션이 있다고 말했다. 혼란 스럽습니다. 'b처음에없는 …

3
언어를 호모 닉으로 만드는 방법
이 기사 에 따르면 다음 라인의 Lisp 코드는 "Hello world"를 표준 출력으로 인쇄합니다. (format t "hello, world") 호모 닉 언어 인 Lisp는 다음 과 같이 코드를 데이터로 처리 할 수 ​​있습니다. 이제 다음 매크로를 작성했다고 상상해보십시오. (defmacro backwards (expr) (reverse expr)) 뒤로는 매크로의 이름으로, 표현식 (목록으로 표시)을 가져 와서 반대로합니다. …

3
프로그래밍 언어 이론 공부
나는 최근에 (기능적) 프로그래밍 언어의 측면을 이해하고 증명하는데 매우 관심을 가지게되었다. 그러나 자세히 미적분학, 범주 이론 및 획기적 의미론과 같은 것은 적절한 설명 없이는 이해하기가 조금 어렵습니다.λλ\lambda SICP (깨끗한 책)를 읽었지만 함수형 프로그래밍 이론에 대해 자세히 알아 보려고합니다. 기능 프로그래밍 언어 이론을 처음부터 논의 할 책 / 블로그 / 사이트 …

1
다형성 람다 미적분의 순진한 이론적 모델이 없습니까?
에 필립와 들러의 논문에서 무료 정리 (theorem) 그는 Parametricity에 2 절에서 언급하는 다형성 람다 미적분학의 순진한 이론 이론적 모델은 없다 순진한 집합 이론적 모델 유형은 집합이고 함수는 합리적으로 보이는 집합 이론적 함수입니다. 왜 그는 다형성 람다 미적분학의 순진한 이론 이론적 모델이 없다고 말합니까?

3
함수형 프로그래밍을 위해 설계된 CPU는 어떻게 다릅니 까?
CPU는 사람들이 암묵적으로 또는 명시 적으로 작성할 소프트웨어를 염두에두고 설계되었습니다. 명령어 세트 아키텍처의 디자인을 살펴보면 각 명령어가 명령형 스타일 명령을 인코딩한다는 의미에서 매우 "필수적"인 것 같습니다. 또한 현재의 명령어 세트 아키텍처는 프로그래머가 생성하는 코드 유형에 따라 부분적으로 진화 한 것으로 보입니다. 함수형 프로그래밍 스타일로 작성된 프로그램 만 실행한다는 것을 알고 …



2
고차 함수는 함수형 프로그래밍에 더 강력한 기능을 제공합니까?
cstheory.SE에 대해 비슷한 질문 을했습니다 . Stackoverflow 에 대한 이 답변에 따르면 비 게으른 순수 함수형 프로그래밍 언어에는 복잡도를 갖는 알고리즘이 있지만 명령형 프로그래밍의 동일한 알고리즘은 Ω ( n ) 입니다. FP 언어에 게으름을 추가하면 알고리즘이 Ω ( n )이 됩니다.Ω ( n 로그n )Ω(nlog⁡n)\Omega(n \log n)Ω ( n )Ω(n)\Omega(n)Ω …

2
CPU 아키텍처는 절차 상 런타임에 편향되어 있습니까?
Rust와 같은 동시 런타임에서 성능을 향상시키기 위해 CPU를 변경할 수있는 변경 사항이 있습니까? 예를 들어, 동시 런타임에 도움이되는 분기 예측 구현 또는 캐시 크기가 변경 되었습니까? 현재 CPU 디자인이 C와 같은 절차 적 런타임에 더 최적화 될 수 있다는 인상을 받았습니다. 대신에 동시 런타임에 최적화하려고한다면 CPU가 어떻게 달라 집니까? 불가피하게, …


3
'삼림 벌채'는 프로그램에서 '나무'를 어떻게 제거합니까?
삼림 벌채가 어떻게 폴드와 펼치기 기능에서 동시에 목록을 소비하고 생성하는지 이해합니다. ( CodeReview 에서이 좋은 답변을 참조하십시오.)이 기술에 대한 위키 백과 항목 과 비교했을 때 '제거'에 대해 이야기했습니다. 프로그램에서 나무. 프로그램을 구문 분석 구문 분석 트리로 구문 분석하는 방법을 이해하지만 (그렇습니다?) 어떤 종류의 프로그램 단순화를 위해 산림 벌채를 사용한다는 의미는 …


2
빠른 인덱싱, 추가, 프리 펜드, 반복을 통해 배열과 같은 불변의 (지속적인) 데이터 구조 구현
빠른 인덱싱, 추가, 프리 펜딩 및 반복 (좋은 지역성) 작업을 허용하는 배열과 유사하지만 불변 의 지속적인 데이터 구조를 찾고 있습니다. Clojure는 지속적인 Vector를 제공하지만 빠른 추가만을위한 것입니다. 스칼라의 Vector는 효과적으로 상수 시간 추가 및 접두어를 갖지만 Clojure 벡터와 동일한 데이터 구조 (비트 매핑 벡터 트리)를 기반으로하고 비트 매핑 벡터 트리를 …

1
"CPS"접근 방식은 SML / NJ의 성능에 큰 해를 끼쳤습니다. 원하는 추론
Learning F #에 대한 의견 : 기능 개념을 배우기 위해 다른 프로그래밍 언어를 사용하는 어떤 책을 F #으로 변환 할 수 있습니까? 마카 리우스의 말 : "CPS"접근 방식은 SML / NJ의 성능에 큰 해를 끼쳤습니다. 물리적 평가 모델이 하드웨어에 내장 된 너무 많은 가정을 위반합니다. Isabelle / HOL과 같은 SML의 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.