小编use*_*561的帖子

在 Windows 中使用 GCC 或 Clang 强制 LP64 数据模型

有没有办法在面向 Windows 时强制 GCC 和/或 Clang 编译器使用 LP64 数据模型(忽略 Windows 使用 LLP64 数据模型)?

c gcc window clang

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

Lua病理模式是否具有指数运行时间?

众所周知,以递归方式(而不是NFA/DFA)实现的正则表达式在某些情况下可能需要指数运行时间.Lua模式是通过递归匹配器实现的(它们允许回溯),但它们的功能不如正则表达式(忘记%b模式).

Lua模式是否需要指数运行时间?并且没有回溯(任何出现的%0,%1,%2 ...模式)?如果是这样,我会欣赏一些例子.

lua time-complexity lua-patterns

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

Haskell中的非法多态或限定类型

为什么Haskell在尝试解析这种类型的签名时会抱怨?

f :: (a,s) -> (forall r.(r -> (a,r)),s)
Run Code Online (Sandbox Code Playgroud)

haskell higher-rank-types

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

定义具有最少定点,总和和产品类型的列表

我想仅使用此类型定义来定义列表:

data Unit = Unit
data Prod a b = P a b
data Sum a b = L a | R b
newtype Mu f = Mu (forall a . (f a -> a) -> a)
Run Code Online (Sandbox Code Playgroud)

我成功地定义了自然数如下:

zeroMu = Mu $ \f -> f $ L Unit
succMu (Mu g) = Mu $ \f -> f $ R $ g f
Run Code Online (Sandbox Code Playgroud)

我知道如何借助额外的数据类型定义列表:

data ListF a x = NilF | ConsF a x
nilMu' = Mu $ \f -> f …
Run Code Online (Sandbox Code Playgroud)

haskell type-theory fixpoint-combinators

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

标准 C 中是否需要文字后缀?

有一个问题已经回答了变量声明的特殊情况,但是其他文字常量的使用呢?

例如:

uint64_t a;
...
int32_t b = a / 1000000000;
Run Code Online (Sandbox Code Playgroud)

在任何标准 C 编译器中,最后一段代码是否等同于下一段代码?

uint64_t a;
...
int32_t b = (int32_t)(a / UINT64_C(1000000000));
Run Code Online (Sandbox Code Playgroud)

换句话说,是否需要 xINTn_C 宏(假设我们在隐式错误的情况下使用显式转换)?

编辑

当编译器读取 时1000000000,是否允许将其存储为int内部表示(删除所有溢出位),或者它必须以尽可能高的精度(long long)存储它,直到它解析整个表达式类型?它是实现定义的行为还是标准规定的?

c c99

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

如何为Mu递归类型编写Show实例

我想为Show以下类型的列表编写一个实例:

newtype Mu f = Mu (forall a. (f a -> a) -> a)
data ListF a r = Nil | Cons a r deriving (Show)
type List a = Mu (ListF a)
Run Code Online (Sandbox Code Playgroud)

模块Data.Functor.Foldable定义了它,但将其转换为Fix,我想避免这种情况。

如何定义该Show实例?

haskell show recursive-datastructures fixpoint-combinators

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