모든 패키지에 테스트 슈트가있는 다중 패키지 프로젝트가 있습니다. stack test 명령을 실행하면 모든 패키지의 테스트 결과가 표시 될 것으로 예상되지만 실제로는 그렇지 않습니다. test/Test.hs
Test.Pack1
Ggurda
skovoroda: OK (0.41s)
OK
patak: O
내가 데이터 data Expense = MkExpense Double String deriving (Eq,Ord)
및 비용의 목록 어떠했는지를 계산 balanced :: [Expense] -> Double -> Bool
balanced expenses epsilon =
let amounts = ...
in maximum amounts
FFI를 통해 일부 데이터를 할당하고 파이널 라이저를 연결할 때 하스켈에 ForeignPtr이 표시됩니다. 이 포인터가 참조 해제되면 GC는 포인터를 수집하여 종료자를 실행합니다. 그러나 수집은 GC가 실행될 때만 발생하며 "참조 해제"는 GC를 강제 실행하지 않습니다. 나는. 많은 포인터가있을 수 있지만 포인터 자체는 많은 메모리를 차지하지 않으므로 RT
내가 가지고있는 매우 무고한 보이는 코드 그것은 컴파일하고 잘 작동 data Config = Config
{ cInts :: [Int]
, cStrings :: [String] }
instance Semigroup Config where
c1 <> c2 = Config
{ cInts = andCombiner cInt
내 yesod 테스트에서 나는 테스트 중간에 db의 레코드를 수정할 수 있기를 원합니다. 여기 이 오류와 함께 실패합니다 내가 yit "post is created by authorized user" $ do
request $ do
addPostParam "ident" "dummy"
setMethod "POST"
나는 약 유용성을 요청합니다. 이것은 컴파일 된 실행 파일/라이브러리의 크기에 미치는 영향에 관한 것입니다. 코드 유지 보수성이나 가독성과 관련이 없습니다. 특정 모듈을 가져 오기 것이 유용 대신 (자체 서브 모듈 수입)의 주요 모듈을 가져 오는 패키지에서 유일하게 사용되는 모듈을 가져 오는 것입니다. import Foreign.Storable
대신 :
여기에 나와 있지 않은 관련없는 코드 조각에 사용할 GADT 확장 프로그램으로 컴파일 할 때 유형 오류로 인해 아래의 to_c 기능이 거부됩니다. newtype Church = Church { unC :: forall a. (a -> a) -> a -> a }
to_c :: Int -> Church
to_c 0 = let f0 f c = c in Chu
여기에 집어 넣었습니다. 과 함께 할 수있는 방법을 알아낼 수 없습니다. newtype Val a = Val {getVal :: [a]} deriving (Show)
instance Monad Val where
return = Val
(>>=) (Val {getVal = l}) f = map f l
나는 다음과 같이 작성하는 경우
는 #!/usr/bin/env stack
-- stack --resolver lts-9.20 script --package cmdargs
{-# LANGUAGE DeriveDataTypeable #-}
module Main where
import System.Console.CmdArgs as Args
data Tape = Record {
fmap도 functor 카테고리에 기능 응용 ($)이기 때문에 <$>입니다. (+5) $ (*10) $ 10 -- 105
(+5) <$> (*10) <$> [1,2,3] -- [15,25,35]
은 그 때 나는 잘 실용적 펑 카테고리의 경우 <*>이 기능을 응용 프로그램에서, 생각이 작동합니다 : [(+5), (+10)] <*> [(*10), (*