二重ループですね。8行目が注目です。lambdaのx,yは文字でも使えそうです。
この例では、数字を文字に変えてますが。
ランキングに参加中。クリックして応援お願いします!
コメント利用規約に同意する
フォロー中フォローするフォローする
こんなカンジ?
>>> print('\n'.join(reduce(lambda y, x: y + [y[-1] + (', ' if y[-1] else '') + str(x)], [1, 2, 3, 4, 5], [''])))
1
1, 2
1, 2, 3
1, 2, 3, 4
1, 2, 3, 4, 5
コメントのprintは難しいのですが、参考にしてみます。注意深く見てみます。yというのは、前回に作った文字列ですかね。xは今回の文字ですか?[1,2,3,4,5]の後の['']は答えの文字列の初期値なんでしょうね。これで二重ループと同等なんでしょうね。
全部正解です。
取り敢えず関数型プログラミング的な発想では「データを生成する」です。
一々printする、のではなく「完全なデータをでっち上げて」一気にprintする。
そういうのが関数型プログラミングの発想のコツ、です。