私はプログラミングの初心者で、練習問題として 3 つの haskell 関数を python に変換するように求められました。1 つの出力が次の機能の入力として使用されるなど、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 に正確に変換することです。私は自分でそれを取り除いたバージョンを作りました。それは演習の次のステップでした ^^