from 함수 정의에서 Cons()
함수가하는 일에 대해 혼란 스럽습니다.이 기능에서 단점은 무엇입니까?
5
A
답변
8
어떤 Stream
이 나타내는 것은 lazy이며 잠재적으로 무한한 목록입니다. SML이 eager이므로 약간 둥근 방식으로 수행해야합니다. 어떻게 일반 목록에서
것을 우선 보자 작동 :
datatype 'a list = [] | :: of 'a * 'a list
단점은 두 부분으로 구성
- 목록
- 목록
게으른 목록에서 꽤 유사합니다. 여기
datatype 'a Stream = Nil | Cons of 'a * (unit -> 'a Stream)
단점은 다음과 같이 구성 목록
- 첫번째 요소
()
그럼, 원리는 거의 동일 함을 알 수 있습니다. 작업하기가 더 어려워서. 예를 들어 목록에서
살펴 보자 :
fun succ n = Cons (n, fn() => succ (n+1))
val naturals = succ 0
이 무엇을 생산 하는가? 그것을 살펴 봅시다.
naturals
은 succ 0
으로 정의되고, 차례로 Cons(0, fn() => succ 1)
으로 정의된다. 이 목록에서 첫 번째 요소는 0
입니다.
이제 한 걸음 더 나아가십시오. 우리의 Cons
의 두 번째 부분 인 fn() => succ 1
을 ()
으로 평가하면 succ 1
이고, 차례로 Cons(1, fn() => succ 2)
입니다. 이제 목록의 두 번째 요소가 1
임을 알 수 있습니다.
이 과정을 반복하면 목록이 무한 목록 [0, 1, 2, ...]
을 나타냅니다.
또한
val firstnats = take 10 naturals;
을하려고하면 무엇을 얻을보고하여이를 확인할 수 있습니다.
1
이 스트림의 두 생성자 중 하나입니다. 그 스크린 샷의 두 번째 라인을보십시오 - 그것이 단점입니다.
관련 문제
- 1. 이 확장 방법 정의의 단점은 무엇입니까?
- 2. TableAdapterManager의 단점은 무엇입니까?
- 3. 많은 인덱스가있는 단점은 무엇입니까?
- 4. HTTPS의 단점은 무엇입니까?
- 5. Typed DataSets의 단점은 무엇입니까
- 6. onMousedown과 onClick의 단점은 무엇입니까?
- 7. Stackless Python의 단점은 무엇입니까?
- 8. 정적 방법의 단점은 무엇입니까?
- 9. MSR Accelerator의 단점은 무엇입니까
- 10. std :: reverse_iterator의 단점은 무엇입니까?
- 11. 붉은 나무의 단점은 무엇입니까?
- 12. SqlBulkCopy의 단점은 무엇입니까?
- 13. SharedPreferences 사용의 단점은 무엇입니까?
- 14. 심볼 삭제의 단점은 무엇입니까?
- 15. 파이썬 달걀의 단점은 무엇입니까?
- 16. 전달 선언의 단점은 무엇입니까?
- 17. 다중 상속의 단점은 무엇입니까?
- 18. DWR의 단점은 무엇입니까?
- 19. H264의 단점은 무엇입니까?
- 20. callStackSymbols의 단점은 무엇입니까
- 21. 'NSTableViewAnimationSlideLeft'선언되지 않은 (이 기능에서 처음 사용)
- 22. 데이터베이스에서 계단식 삭제의 단점은 무엇입니까?
- 23. HttpServletResponseWrapper를 사용할 때의 단점은 무엇입니까
- 24. 'object'undeclared <이 기능에서 처음 사용>
- 25. Maven 사용의 장점/단점은 무엇입니까?
- 26. BitNami와 네이티브 스택의 단점은 무엇입니까?
- 27. VB.NET에서 CallbyName 함수의 단점은 무엇입니까?
- 28. AJAX on Rails의 단점은 무엇입니까?
- 29. 참조로 전달할 때의 단점은 무엇입니까?
- 30. Linux의 메시지 대기열의 단점은 무엇입니까?