我刚刚开始使用Parsec(在Haskell方面经验不足),而且我对使用monads或applicatives感到有些困惑.阅读"真实世界Haskell","写你一个Haskell"之后的整体感觉以及这里的一个问题是应用程序是首选,但我真的不知道.
所以我的问题是:
我认为用一个例子可以更好地说明.使用这样的结构:
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标准对该主题有何规定?