首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略Control.Applicative中的参数

忽略Control.Applicative中的参数
EN

Stack Overflow用户
提问于 2013-04-17 11:02:45
回答 1查看 179关注 0票数 6

我正在编写一个xml管道解析器,并且我更喜欢应用语法而不是一元语法。由于要结合许多论点,我有点迷失在应用程序中。我现在的问题有8个参数,我只想用第4和第6个参数来构造结果。

我能让它工作的唯一方法是;尽管有一个平面解决方案,但应该有花哨的星形排列:

代码语言:javascript
复制
import Control.Applicative

a1 :: Applicative Text
a2 :: Applicative Text
a3 :: Applicative Text
a4 :: Applicative Text
a5 :: Applicative Text
a6 :: Applicative Text
a7 :: Applicative Text
a8 :: Applicative Text

data Data = Data Text Text
f :: Text -> Text -> Data

parser :: Applicative Data
parser = a1 *> a2 *> a3 *> (f <$> a4 <* a5 <*> a6) <* a7 <* a8

有没有办法在没有括号的表单中做同样的事情?

代码语言:javascript
复制
parser = f <$> a1 ?? a2 ?? a3 ?? a4 ?? a5 ?? a6 ?? a7 ?? a8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-17 11:11:16

啊哈,推荐的Applicative style parser for constructor with two arguments链接让我找到了答案:使用(<$),不要使用(*>)

代码语言:javascript
复制
parser = f <$ a1 <* a2 <* a3 <*> a4 <* a5 <*> a6 <* a7 <* a8
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16050719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档