gpt4 book ai didi

haskell - 有没有办法在 Haskell 中对长度进行模式匹配?

转载 作者:行者123 更新时间:2023-12-01 09:14:37 25 4
gpt4 key购买 nike

<分区>

我有一个函数,它接受一个列表并返回一个指定长度的子列表列表:

*Main> neighbors 3 [1,2,3,4]
[[1,2,3],[2,3,4]]

neighbors :: Int -> [a] -> [[a]]
neighbors n xs =
let ys = take n xs
zs = drop 1 xs
in if (length ys < n)
then []
else ys : neighbors n zs

虽然它有效,但它对我来说并不是特别“Haskell-y”,所以我认为可能有一个模式匹配来做同样的事情。在那儿?或者,也许,我错过了一种不同的、默认的、这样做的方式?我查看了各种拆分库,并且 https://wiki.haskell.org/Let_vs._Where为我提供了使该功能正常工作的工具。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com