0

ユーザー定義関数でリバース関数を使用することはできますか?

したがって、ユーザー作成関数は結果を提供し、その結果を逆にしたいと考えています。

mult_add d s = d + 10*s

form_number_back d = foldr mult_add 0 d

上記の結果を逆にする関数

form_number_front d = reverse [d form_number_back]

form_number_back... でリストを反転させてから、form_number_front で反転させています。

私もfoldlを試しましたが、結果はありませんでした。

4

1 に答える 1

1
form_number_front d = reverse [d form_number_back]

これには多くの問題があります。

まず、form_number_backは関数で、dはその関数に渡したい数値です。関数は引数の左側になければなりません:

form_number_front d = reverse [form_number_back d]

より実質的には、リストreverseを逆にするためのものです。しかし、呼び出しの結果は数値です。その番号の桁を逆にしたいようです。form_number_back

ここで、リストを数値に変換する に、リストを逆にしてみることができます。form_number_back

form_number_front d = form_number_back (reverse d)

form_number_backリストを必要な順序で折りたたむように書き直すことができます。

form_number_front d = foldl (flip mult_add) 0 d

これは役に立ちますか?

于 2012-06-12T08:53:18.523 に答える