小编Asa*_*Asa的帖子

ApplicativeDo语言扩展与`Parsing` applicative仍在寻找Monad实例

我想写使用一个解析器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.我在做错了什么/在这里失踪了?

haskell ghc applicative

11
推荐指数
1
解决办法
115
查看次数

从递归类型生成函数

假设在我的应用程序中,我有一组具有非常常规实现的功能(例如特定的日志记录功能)。我有一个类型

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)

但是,似乎此重复模式可以从所有叶类型都有 …

haskell

4
推荐指数
1
解决办法
97
查看次数

需要强制 Xcode 5 不使用通配符配置文件

我正在尝试使用 Xcode 5 中的新自动配置,当我在 iPhone 上运行构建时,它似乎正在下载通配符配置文件并使用它来运行应用程序。这不好,因为我的应用程序使用推送通知,而通配符没有注册推送通知的正确权利。

有没有办法指定使用合格应用程序 ID 的配置文件,以便我可以测试推送通知?

我考虑过的策略:

  • 删除通配符应用程序 ID - 您不能执​​行此操作
  • 删除通配符配置文件 - Xcode 将重新创建通配符配置文件
  • 在目标的构建设置中明确指定配置文件
    1. 我不知道如何使用 Xcode 5 确定显式名称。我可以下载并在文本编辑器中打开配置文件,但这可能不是执行此操作的正确方法
    2. 如果我指定配置文件,则每次生成新配置文件时都需要更新它(添加新设备、配置文件过期、签名证书过期)。这违背了自动配置的目的。
  • 我在 Xcode 中寻找这样的设置,但没有看到任何有用的东西
  • 我已按照此处的步骤(用于配置推送通知)进行操作,当我刷新配置文件时,它们不会更新。

有任何想法吗?

xcode ios provisioning-profile xcode5

1
推荐指数
1
解决办法
1673
查看次数

标签 统计

haskell ×2

applicative ×1

ghc ×1

ios ×1

provisioning-profile ×1

xcode ×1

xcode5 ×1