我想写使用一个解析器parsers 包使用do的语法.这是一个例子:
{-# LANGUAGE ApplicativeDo #-}
import Text.Parser.Char (string, spaces)
import Text.Parser.Token (TokenParsing, natural)
issueParser :: TokenParsing p => p Integer
issueParser = do
spaces
string "**Issue:**"
spaces
string "https://github.com" <|> string "github.com"
string "/commercialhaskell/stack/issues/"
natural
Run Code Online (Sandbox Code Playgroud)
GHC给我的错误是Could not deduce (Monad p) arising from a do statement from the context: TokenParsing p.此错误消息是正确的,TokenParsing不提供Monad作为超类,但它确实提供了Applicative哪些方法,因为我打开了这个语言扩展,我应该能够使用do语法Applicative.我在做错了什么/在这里失踪了?
假设在我的应用程序中,我有一组具有非常常规实现的功能(例如特定的日志记录功能)。我有一个类型
data ShowFns =
{ showFn1 :: Int -> Bool -> Double -> String
, showFn2 :: Double -> Char -> String
}
Run Code Online (Sandbox Code Playgroud)
这两个都可以简单地实现为
showFn1' :: Int -> Bool -> Double -> String
showFn1' a b c = show a <> " " <> show b <> " " <> show c
showFn2' :: Double -> Char -> String
showFn2' a b = show a <> " " <> show b
fnCollection :: ShowFns
fnCollection = ShowFns showFn1' showFn2'
Run Code Online (Sandbox Code Playgroud)
但是,似乎此重复模式可以从所有叶类型都有 …
我正在尝试使用 Xcode 5 中的新自动配置,当我在 iPhone 上运行构建时,它似乎正在下载通配符配置文件并使用它来运行应用程序。这不好,因为我的应用程序使用推送通知,而通配符没有注册推送通知的正确权利。
有没有办法指定使用合格应用程序 ID 的配置文件,以便我可以测试推送通知?
我考虑过的策略:
有任何想法吗?