我對編程非常陌生,並被要求將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