アルファベットのみの文字列からなるランダムな文字列を作成したいと考えています。これは私がこれまで持っているコードです:それは文字列を構築するためにシャアを期待するようlowerAlphaはゲンチャーgetStringで文句を言わない仕事を返すのでHaskellでの型の変更
letters :: String
letters = "abcdefghijklmnopqrstuvwxyz"
{- | Generates any lower case alpha character.
-}
lowerAlpha :: Gen Char
lowerAlpha = oneof (map return letters)
getString :: Int -> String
getString 0 = []
getString n = lowerAlpha : getString (n - 1)
のgetStringは、1と25との間のランダムなのIntを渡されます。 Gen StringをStringに変更する方法はありますか?これは、問題が発生したコードの行である - getString n = lowerAlpha : getString (n - 1)
もしあなたがそれを[MCVE]にしてください。 「Gen」と「oneof」が何であるかを推測する必要があるときは、ちょっと面倒です。 – leftaroundabout
これは、特にQuickcheck、または一般的なランダム性についての質問ですか? – Michael
'Char'は' Enum'のインスタンスなので 'letters = ['a' .. 'z']'と書くことで小文字をすべて手作業で入力する必要がなくなります。 – chepner