小编Jos*_*uel的帖子

Parsec:Applicatives vs Monads

我刚刚开始使用Parsec(在Haskell方面经验不足),而且我对使用monads或applicatives感到有些困惑.阅读"真实世界Haskell","写你一个Haskell"之后的整体感觉以及这里的一个问题是应用程序是首选,但我真的不知道.

所以我的问题是:

  • 什么方法是首选的?
  • monad和applicatives可以混合使用(当它们比另一个更有用时使用它们)
  • 如果最后的答案是肯定的,我应该这样做吗?

haskell parsec

21
推荐指数
3
解决办法
3572
查看次数

根据C标准,带参数的宏可能会与标识符冲突吗?

我认为用一个例子可以更好地说明.使用这样的结构:

typedef struct {
    int a;
    char b;
} Foo;
Run Code Online (Sandbox Code Playgroud)

定义一个宏:

#define Foo(A, B) (Foo){ A, B }
Run Code Online (Sandbox Code Playgroud)

然后可以像这样使用:

Foo foo;
foo = Foo(1, 'c');
Run Code Online (Sandbox Code Playgroud)

我一直在使用这种模式,对我而言,这是一种非常优雅的初始化结构的方法.它适用于GCC和Clang(以及我认为的TCC),但在一些鲜为人知的C编译器(如Plan 9的C编译器)中却没有.

C标准对该主题有何规定?

c

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

标签 统计

c ×1

haskell ×1

parsec ×1