CBN (call-by-need) 및 CBV (call-by-value) 평가 전략을 모두 제공하는 것이 좋습니까? 나는 그것을 고치지 않고 하나를 다른 것에서 시뮬레이트하지만 사용자가 필요할 때 선택할 수있게 해줍니다. 예를 들어 언어에 기능이 있습니다 (Scheme available). 사용자가 원하는 평가 전략을 지정하는 인수를 하나 더 받아 들일 수 있습니다.언어를 사용하여 이름별로 통화와 가치에 의한 통화를 제공하는 것은 어떻습니까?
4
A
답변
6
부작용이있는 계산을 피하고 발산 계산을 엄격하게하는 것을 피하는 한, 한 언어 구현에서 필요에 따른 호출 (laziness)과 call-by-value (strictness)를 결합하는 것이 가능합니다.
은 지연 기능 (CBN) 기능 언어에서 기능이 CBV 전략을 사용하여 안전하게 평가 될 수 있는지를 감지하는 데 사용됩니다. CBV 평가는 일반적으로 더 빠르지 만 엄격하지 않은 함수에 대해이 평가 전략을 사용하면 프로그램의 의미가 변경됩니다.
Wadler은 기능적 언어로 게으른 계산과 엄격한 계산을 결합하는 방법을 설명합니다.
람다 궁극적 인 thread도 문제를 해결합니다.
Scala에는 특정 계산이 느리게 수행됨을 나타내는 키워드 lazy
이 있습니다. 다른 언어도 비슷한 구조를 가지고 있습니다.
관련 문제
- 1. Java 7에서 동적 언어를 지원하는 것은 어떻습니까?
- 2. PHP에서 aspx를 호출하는 것은 어떻습니까?
- 3. Android에서 음성 통화와 화상 통화를 구분하는 방법은 무엇인가요?
- 4. 가치에 의한 자바 패스 - 이것을 설명 할 수 있습니까?
- 5. QtScript에서 GUI 응용 프로그램을 완벽하게 작성하는 것은 어떻습니까?
- 6. 컨트롤러에서 풍부한 기능을 제공하는 것은 무엇입니까?
- 7. XSLT를 사용하여 속성 이름별로 XML 정렬
- 8. std :: binary_function - 통화와 일치하지 않습니까?
- 9. 던진 가치에 따라 어떻게 일을합니까?
- 10. JSF f : convertNumber 통화를 반올림합니다
- 11. 통화를 변환 할 때 피벗 통화를 사용하는 것이 좋습니다.
- 12. 통화를 긴 통화로 변환
- 13. Maven이 다른 언어를 지원하는 것은 물론 다른 언어를 지원하는 플러그인을 작성하는 방법은 무엇입니까?
- 14. Sencha 또는 Extjs는 어떻습니까?
- 15. C 언어를 사용하여 루비 보석을 어떻게 만드나요?
- 16. Rails 지연된 작업 백그라운드 작업의 가치에 액세스
- 17. Jquery - 클래스 이름별로 TD 옮기기
- 18. android에서 통화를 차단하는 방법
- 19. PHP 통화를 통화로 변환하십시오.
- 20. 통화를 사용하는 모범 사례
- 21. PATINDEX와 CHARINDEX의 성능은 어떻습니까?
- 22. infopath에서 webservice의 동작은 어떻습니까?
- 23. 다양한 MySQL 버전과의 거래는 어떻습니까?
- 24. 내 회원의 가치에 어떤 변화가 있습니까?
- 25. app.config의 ConnectionStrings입니다. 보안은 어떻습니까?
- 26. Django 관리자에서 사용자 이름별로 프로필을 검색하려면 어떻게해야합니까?
- 27. -drawRect를 사용하여 contentView를 제공하는 방법?
- 28. 날짜와 통화를 항상 객체로 전달해야합니까?
- 29. 코어 데이터의 성능은 어떻습니까?
- 30. PHP에서 SCRIPT_NAME의 위험성은 어떻습니까?
비록 대답을 제공했지만 stackoverflow로 마이그레이션하면이 질문이 더 많은 답변을 얻을 수 있다고 생각합니다. @plmday에 대해 어떻게 생각하십니까? –
고마워, Dave. 좋은 생각이야. – day
불행히도, 아직 결과를 얻지 못했습니다. –