うーん、なんででしょう...
(Nil,0) (Bool True,1) (Bool False,2) (UInt8 1,3) (UInt16 2,5)
runSumComment 100
data Comment = Comment { cId :: !Integer , cAuthor :: !User , cParentId :: !(Maybe Integer) , cPoint :: !Int , cDescription :: !Text , cResponse :: ![Comment] } deriving Show
arbitrary = go 0 where go depth = do ... cResponse <- if depth == 200 then pure [] else vecorOf listLen $ go (depth + 1) pure Comment {..}
cResponse
の length
をとって足し合わせればできるかな...?)cResponse
の !
を外すとメモリ消費量はめっちゃ増えそうですがstack overflowはしないかもしれません。sized
と scale
を使うのがより正当なやり方かもしれません。 http://hackage.haskell.org/package/QuickCheck-2.11.3/docs/Test-QuickCheck-Gen.htmlarbitrary = scale (min 200) $ sized $ \size -> {- 最大でsize個のcResponseを持つCommentを生成する処理-}
stack --resolver lts-12.9 repl --package iCalendar-0.4.0.4 --package mime-0.4.0.2
と実行したらどうなります?Paths_iCalendar
モジュールのシンボルなので,
が原因?<no location info>: warning: [-Wmissing-home-modules] [ 1 of 10] Compiling Paths_iCalendar ( .stack-work\dist\7d103d30\build\autogen\Paths_iCalendar.hs, .stack-work\dist\7d103d30\build\Paths_iCalendar.o ) These modules are needed for compilation but not listed in your .cabal file's other-modules: Paths_iCalendar
Arbitrary
をどうするか、というのは結構難しい問題みたいでして。*** Exception: SqlError {sqlState = "42804", sqlExecStatus = FatalError, sqlErrorMsg = "column \"created_at\" is of type timestamp with time zone but default expression is of type time with time zone", sqlErrorDetail = "", sqlErrorHint = "You will need to rewrite or cast the expression."}
catchAnyDeep
, tryAnyDeep
より更に評価を強制する関数ってありますかね。。Substring Diff
https://www.hackerrank.com/challenges/substring-diff/problem の Haskell での解法を教えて下さい Python ならば通る方法(2次元のテーブルを作り二分探索)を使うと n = 1500 のテストケースで Data.Array メモリーエラーになりました