当我在cghi中尝试以下代码时:
1
我期待在我的终端上打印[[1,2,3,4,5,6,7,8,9,10,...
而不是Exception in thread "main" java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at java.util.Arrays$ArrayList.<init>(Arrays.java:3813)
at java.util.Arrays.asList(Arrays.java:3800)
at project.1.scavenger.listf(scavenger.java:19)
at project.1.scavenger.listf(scavenger.java:30)
at project.1.scavenger.listf(scavenger.java:30)
at project.1.main(Project1.java:28)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
的结果。
为什么懒惰评估不起作用,因为我希望在这种情况下?
答案 0 :(得分:10)
take
的类型为Int -> [a] -> [a]
,即返回一个列表。看来你正在寻找head
,它会返回一个元素。
head $ head $ repeat [1..]
答案 1 :(得分:6)
take 1 $ repeat [1..]
返回[[1..]]
。然后take 1 [[1..]]
返回[[1..]]
,一个无操作。