2017-02-21 20 views

答えて

3

をこれは、パターンマッチングとHOFのキュートな組み合わせです。

ltos :: [String] -> String 
ltos [] = "" 
ltos (m:n) = foldl' (\a b -> a ++ "|" ++ b) m n 

はその後、(それらのそれぞれの間に|を追加)残りの要素の上に折り、開始文字列として、リストの最初の要素を使用します。

(私はあなたがltosに署名をミスタイプしたと仮定しています)。

3

は、ここでの方法だでしょう:アキュムレータが空で初めて

foldl' (\acc x -> if (null acc) then acC++ x else acC++ "|" ++ x) [] ["a", "b", "c"] 

、これだけ最初の文字列を追加リストから。その後、セパレータを変数の前に追加します。あなたがscanlを実行する場合、あなたは次のように構築されている文字列を見ることができます:

["","a","a|b","a|b|c"] 
関連する問題