我只需要使用高阶函数来改善haskell函数,以获取n的阶乘

我曾尝试在此网站上寻找类似的问题。我看过youtube,但只发现了递归。我不能使用递归或列表理解,而是尝试实现fold函数,但是我不知道如何正确执行。这是代码:

factors :: Integer -> [Integer]
factors n = [n]