我对编程很陌生,我被要求将 3 个 haskell 函数转换为 python 作为练习。这 3 个函数是相连的,因为其中一个函数的输出用作下一个函数的输入,以此类推。
我得到了haskell函数的作用,但我不知道如何开始转换它们!
这是haskell代码:
factorial :: Int -> Int
factorial n = product (down n)
product :: [Int] -> Int
product [] = 1
product (a:as) = a * product as
down :: Int -> [Int]
down 0 = []
down n = n : down (n-1)
这是我转换它的尝试:
class function:
def down(self):
if self.n == 0:
self.lista = []
else:
self.lista = range(self.n, 0, -1)
def product(self):
for x in self.lista:
if x == []:
self.product = 1
if x != []:
for i in self.lista:
self.product = i * self.product
def factorial(self):
self.n = int(raw_input("n="))
self.fact = self.product(self.down(self.n))
print self.fact
raw_input()
c = function()
c.factorial()
好吧,首先我相信这不是haskell代码的“直接转换”。不过那没关系,但是第二,它不起作用。
这种缺乏编程背景正在杀死我......有人可以帮我解决这个问题吗?
非常感谢!
编辑:
这个问题的重点是将haskell完全转换为python。我自己做了一个精简版,这是练习的下一步^^