«pure-function» 태그된 질문

순수한 함수는 동일한 인수가 주어지면 항상 동일한 것으로 평가되며 외부 상태를 변경하거나 의존 할 수없는 함수입니다.

6
메모 화 된 순수한 함수 자체가 순수한 것으로 간주됩니까?
fn(x)의 주요 요소 목록을 반환하는 것과 같이 값 비싼 것을 수행하는 순수한 함수 라고 가정 해 봅시다 x. 그리고라는 동일한 함수의 메모 버전을 만든다고 가정 해 봅시다 memoizedFn(x). 주어진 입력에 대해 항상 동일한 결과를 반환하지만 성능을 향상시키기 위해 이전 결과의 개인 캐시를 유지합니다. 공식적으로 말하면 memoizedFn(x)순수한 것으로 간주됩니까? 아니면 FP …

7
동일한 입력이 항상 동일한 출력을 반환하지만 부작용이있는 함수를 무엇이라고 부릅니까?
다음과 같은 정상적인 순수한 기능이 있다고 가정 해보십시오. function add(a, b) { return a + b } 그런 다음 부작용을 갖도록 변경합니다. function add(a, b) { writeToDatabase(Math.random()) return a + b; } 사람들이 순수한 기능을 "부작용없는 기능"이라고 부르는 것을 종종 듣기 때문에 내가 아는 한 순수한 기능으로 간주되지 않습니다. 그러나 …

5
예외를 catch / throw하면 순수한 방법이 불완전합니까?
다음 코드 예제는 내 질문에 대한 컨텍스트를 제공합니다. Room 클래스는 대리자로 초기화됩니다. Room 클래스의 첫 번째 구현에서는 예외를 발생시키는 델리게이트에 대한 가드가 없습니다. 이러한 예외는 대리자가 평가되는 North 속성으로 버블 링됩니다 (주 : Main () 메서드는 클라이언트 코드에서 Room 인스턴스가 사용되는 방법을 보여줍니다). public sealed class Room { private readonly …

4
순수한 기능을 비공개로 만들어야 할 이유가 있습니까?
나는 동료와 약간의 토론이있었습니다. 간단히 말해서 순수한 함수를 숨기거나 캡슐화 할만한 이유가 있습니까? "순수"란 위키피디아 정의를 의미합니다 . 항상 동일한 입력에서 동일한 결과를 반환합니다. (이 의미에서 가치 의미론이 Foo Create(){ return new Foo(); }없다면 이 논의 는 불완전한 것으로 간주됩니다 Foo.) 변경 가능한 상태 (로컬 변수 제외) 또는 I / …

2
생성자에서 [Pure]를 언제 사용합니까?
.NET의 코드 계약에 대해 배우고 있으며 순수한 생성자의 아이디어를 이해하려고합니다. 코드 계약의 문서 상태 : 계약 내에서 호출되는 모든 메소드는 순수해야합니다. 즉, 기존 상태를 업데이트해서는 안됩니다. 순수한 메소드는 순수한 메소드에 입력 한 후 작성된 오브젝트를 수정할 수 있습니다. 그리고 PureAttribute설명서는 다음 과 같이 말합니다. 유형 또는 메소드가 순수함을 나타냅니다. 즉, …

5
함수를 매개 변수로 사용하면 함수가 즉시 불완전합니까?
입력 매개 변수의 순도는 런타임까지 알려지지 않았으므로 함수를 입력 매개 변수로 사용하는 경우 즉시 함수가 불완전한 것으로 간주됩니까? 관련 : 함수가 함수 외부에 정의되어 있지만 매개 변수로 전달되지 않은 순수한 함수를 적용하는 경우 부작용이없고 출력이 입력에만 의존하는 기준을 충족하더라도 여전히 순수합니까? 상황에 따라 JavaScript로 기능 코드를 작성하고 있습니다.

6
순수한 기능성 대 말하기, 묻지 않습니까?
"함수에 대한 이상적인 인수 개수가 0"은 분명하지 않습니다. 이상적인 인수 수는 함수에 부작용이 없는데 필요한 숫자입니다. 그보다 적 으면, 불필요하게 함수가 불완전하게되어 성공의 구덩이에서 멀어지면서 고통의 구배를 상승하게됩니다. 때때로 그의 조언으로 "Uncle Bob"이 발견됩니다. 때때로 그는 장관이 잘못되었습니다. 그의 제로 논증 조언은 후자의 예입니다 ( 출처 :이 사이트의 다른 질문에 …

3
"방법은 값을 반환하거나 부작용을 가져야하지만 둘다는 안된다"
나는 메소드가 반환 값을 가져야하고 (참조 적으로 투명해야 함) 부작용을 가져야하지만 둘다는 안된다는 것을 한 번 읽었습니다. 이 규칙에 대한 언급은 찾을 수 없지만 더 자세히 알고 싶습니다. 이 조언의 기원은 무엇입니까? 어떤 사람이나 공동체에서 발생 했습니까? 추가 크레딧 :이 조언을 따르면 어떤 이점이 있습니까?

5
함수가 순수한 경우 계산
Wikipedia에 따라 : 컴퓨터 프로그래밍에서, 함수에 관한이 두 문장이 모두 유지되면 함수는 순수한 것으로 설명 될 수 있습니다. 함수는 항상 동일한 인수 값이 주어지면 동일한 결과 값을 평가합니다. 기능 결과 값은 프로그램 실행이 진행됨에 따라 또는 프로그램의 다른 실행간에 변경 될 수있는 숨겨진 정보 또는 상태에 의존 할 수 없으며 …

2
함수형 프로그래밍은 동일한 객체가 여러 장소에서 참조되는 상황을 어떻게 처리합니까?
나는 사람들이 (이 사이트에서도) 일상적으로 기능적 프로그래밍 패러다임을 칭찬하면서 모든 것이 불변의 것을 갖는 것이 얼마나 좋은지를 강조하고 있습니다. 특히 사람들은 C #, Java 또는 C ++와 같은 전통적인 명령형 OO 언어에서도 Haskell과 같은 순수한 기능 언어뿐만 아니라 프로그래머 에게이 기능을 강요하는 방식 으로이 접근법을 제안합니다. 나는 변이성과 부작용을 발견하기 …

3
함수 연산자에서 할당 연산자 나 루프를 사용하지 않는 이유는 무엇입니까?
내 함수가 두 가지 요구 사항을 충족하면 Sum 주어진 조건에서 항목이 true로 평가되는 목록에서 항목의 합계를 반환하는 함수가 순수한 함수라고 할 수 있다고 생각합니까? 1) 주어진 i / p 세트에 대해 함수가 호출 될 때 시간에 상관없이 동일한 o / p가 리턴됩니다. 2) 부작용이 없습니다. public int Sum(Func<int,bool> predicate, IEnumerable<int> …

4
이 방법이 순수합니까?
다음과 같은 확장 방법이 있습니다. public static IEnumerable<T> Apply<T>( [NotNull] this IEnumerable<T> source, [NotNull] Action<T> action) where T : class { source.CheckArgumentNull("source"); action.CheckArgumentNull("action"); return source.ApplyIterator(action); } private static IEnumerable<T> ApplyIterator<T>(this IEnumerable<T> source, Action<T> action) where T : class { foreach (var item in source) { action(item); yield return item; } …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.