이와 비슷한 숫자의 (희망적으로 무한한) 목록을 반환하는 함수를 만들 수 있는지 궁금합니다. [1, [2, [3, [4]]]].튜플의 목록 또는 튜플 목록
가장 가까운 곳은 이것입니다.
func list 0 = list
func list num = func newList (num-1)
where newList = list ++ [[num]]
이것은 다음과 같이 사용됩니다.
func [] 3
이 메시지는 다음을 반환합니다.
[[3],[2],[1]]
지금 나는이 무한하지 않고 올바른 순서를 것을 알고 있지만 난 그냥 적어도 게시하기 전에 뭔가를 시도하는 것을 보여주고 싶었다. :)
감사합니다.
힌트 : 해당 기능의 유형은 무엇입니까? – Chris
Arrrgghhh! 시도한 것을하지 말아야 할 이유에 대한 많은 유용한 해답이 있지만, 가장 간단하고 명백한 해법을 말하는 사람은 아무도 없습니다. 단지 정수 목록 인 [Int]를 원합니다. – AndrewC
':'는 하스켈의 목록 앞에 뭔가를 넣는 방법입니다. 그래서'1 : [2,3,4]'를하면'[1,2,3,4]'이됩니다. 따라서'func num = num : func (num + 1)'을 정의한 다음'take 100 (func 1)'을 정의 할 수 있습니다. 조심해. 왜냐하면'func'이 정말로 허용 할 것이기 때문에,'take '를 사용하는 것이 좋습니다. 간단히 말해서, 우리는 보통'func 1'을'[1. ..]'로 작성합니다. – AndrewC