我对编程非常陌生,并被要求将3个haskell函数转换为python作为练习练习。 这3个功能是连接的,因为一个的输出被用作下一个的输入等等。Haskell to Python:多功能转换问题
我得到了什么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的准确转换为蟒。 我自己做了一个剥离版本,这是练习中的下一步^^
将代码从一种您不完全理解的语言转换为另一种您不完全理解的语言是学习编程的一种可怕方式。我会建议谁给你的练习,他们让你感觉舒适的阅读和写代码在一种语言第一。 – Ben