どうすれば達成できるのだろうと思っていました:
文字列の最初の 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