をその一部を取るために:どのように文字列を繰り返し、Haskellの
例えばInt -> [a] -> [a]
3 "pink"
が"pin"
6 "blue"
を与えるだろうと、私はそうロジックを形成することができないか、それを行うにはどんな機能があるかどうかわからないハスケルに新たなんだ"bluebl"
を与えるだろう。
をその一部を取るために:どのように文字列を繰り返し、Haskellの
例えばInt -> [a] -> [a]
3 "pink"
が"pin"
6 "blue"
を与えるだろうと、私はそうロジックを形成することができないか、それを行うにはどんな機能があるかどうかわからないハスケルに新たなんだ"bluebl"
を与えるだろう。
ちょうど使用:take n . cycle
以上明確にするため(cycle
なし):
repeatStr :: [a] -> [a]
repeatStr [] = []
repeatStr string = string ++ repeatStr string
takeN :: Int -> [a] -> [a]
takeN n string = take n $ repeatStr string
main = do putStrLn $ takeN 6 "Blue"
出力:
BlueBl
はの交換しますcycle
0:
takeN :: Int -> [a] -> [a]
takeN n string = take n $ cycle string
main = do putStrLn $ takeN 6 "Blue"
それとも@Rein Henrichsとしては、言った:
takeN :: Int -> [a] -> [a]
takeN n = take n . cycle
main = do putStrLn $ takeN 6 "Blue"
'repeatStr'は既に' cycle'として存在します。 'takeN n = take n。サイクル。 –
あなたの質問は何ですか? "これを行うためのコードを書くにはどうすればいいですか"ということに留意してください。ここでトピック上の質問とはみなされません。あなたが思ったことを私たちに示し、あなたがそれを試みたときに何がうまくいかなかったか説明してください。 –