4

どうすれば達成できるのだろうと思っていました:

文字列の最初の n 文字を取得して++(それらを連結して)、これらの最初の n を削除し、次の n を取得します (単語を切断することなく)。私は関数合成を試み$ましたが、得られるのはエラーだけです。

編集

テキストを特定の列幅 (n) の左に揃えようとしています。そのため、単語を切り取らないようにしていますが、番号 n に単語がある場合は、その前にいくつかの文字を取り、 \n を使用して開始します次の行のためにもう一度。これまでの私の主な問題は、カットワード条件をチェックすることです(使用できます!!が、マップ(-1)またはその他の方法でガードで使用する必要があります)および再帰を実装することです。

take n s ++ "\n" ++ take n (drop n s)

また、n が最長の単語より小さい場合:

leftAlign n str = if n < ((maximum . map length . words) str) then "" else leftAlign n str
4

1 に答える 1

-1

Data.List.Split.chunksOfこれを行います。

于 2015-06-13T17:28:23.637 に答える