2011-12-09 6 views
2

순수한 함수가 순수한 것을 반환한다는 것은 무엇을 의미합니까?순수 함수가 순수 평균을 반환하는 이유는 무엇입니까?

pure int doubleMe(in int i) pure { return i * 2; } 

코드는 redundant storage class pure을주지 않고 컴파일, 그래서 나는이 버그가 아닙니다 생각?

// DMD 2.056

+0

[태그 : pure] 태그를 정리하려고 시도했습니다. 때로는 순수 가상 함수를 참조하기도하고 때로는 [순수] (http://beebole.com/pure/)를 참조하기도하고 때로 [순수 ] (http://en.wikipedia.org/wiki/Pure_(programming_language)) 등이 있습니다. 하지만 [태그 : d]에 대해서는 아무 것도 모릅니다. 내 태그 편집이 적절한 지 확인할 수 있습니까? 이 질문에 대해 [태그 : 순전히 기능을 수행 할 수 있습니까] - [태그 : 순수 함수]를 만들었으므로 [태그 : 순전히 기능]이 작동하면 기존 태그를 사용하는 것이 더 좋을 것이라고 생각합니다. –

+0

@RichardJPLeGuen [기능 순도] (http://en.wikipedia.org/wiki/Pure_function) 에서처럼 순전히 순수한 함수가이 질문에 대해 작동합니다. 순전히 기능적이지, 순전히. – Arlen

답변

4

순수는 기능 속성입니다. 함수 특성은 반환 형식 또는 매개 변수 목록 뒤에 올 수 있습니다. 두 경우 모두 리턴 유형이 아닌 함수를 설명합니다. 그러므로 "순수하게 돌아 오는"것과 같은 것은 없습니다.

오류가 발생합니다. 버그 일 가능성이 있습니다. @safe와 같은 다른 속성들도 무시됩니다.

+0

버그 신고를 원하십니까? – Arlen

+2

'pure'는 저장 클래스가 아니기 때문에'redundant storage class pure'를 쓰지는 않을 것입니다. 그러나 여전히 오류를보고해야합니다. –

+0

그러나 저장소 클래스로 구문 분석됩니다. http://www.d-programming-language.org/declaration.html#StorageClass –

0

pure int은 아마도 무시해야합니다. 그러나 나는 그것이 갖는 이유가 함수가 "순수 함수"를 반환 할 수 있다고 믿습니다. 이 경우 버그인지 아닌지는 논쟁의 여지가 있습니다.

+0

반환 유형 앞에 'pure'를 넣으면 항상 함수를 참조합니다. 이는 스토리지 클래스 및 기타 함수 속성과 동일합니다. –

+0

순수 함수를 반환하는 함수에 대해 쓰고 있었는데 ... – DejanLekic