小编Hex*_*irp的帖子

是否有任何类型类定义了从 `a -> mb` 到 `m (a -> b)` 的函数?

a -> m bfrom to函数m (a -> b)在编程中很少出现,但可以在 Reader monad 中制作。以下代码是暂定的实现。这样的图书馆存在吗?

class Monad m => MonadShift m where
  shift :: (a -> m b) -> m (a -> b)

instance MonadShift Identity where
  shift f = Identity (\x -> runIdentity (f x))

instance MonadShift m => MonadShift (ReaderT r m) where
  shift f = ReaderT (\r -> shift (\x -> runReaderT (f x) r))
Run Code Online (Sandbox Code Playgroud)

haskell distributive

8
推荐指数
2
解决办法
219
查看次数

I和tt的名称的起源是什么?

Coq标准库有两种单位类型。True键入一个Prop,并具有一个构造函数I : True。另一个unit是输入的Set,并且具有单个构造函数tt : unit。我不知道什么是名称的由来Itt

coq

5
推荐指数
0
解决办法
140
查看次数

我可以在"coqtop - nois"下定义一个策略吗?

$ coqtop -nois
Welcome to Coq 8.7.0 (October 2017)

Coq < Ltac i := idtac.
Toplevel input, characters 0-4:
> Ltac i := idtac.
> ^^^^
Error: Syntax error: illegal begin of vernac.
Run Code Online (Sandbox Code Playgroud)

我正在"coqtop -nois"下重新开发"Coq.Init.Prelude"和"HoTT.Basics.Overture"进行实践.我发现很难直接写表达式.这就是我想要使用战术的原因.我想知道为什么我不能使用"Ltac".

coq coq-tactic ltac

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

标签 统计

coq ×2

coq-tactic ×1

distributive ×1

haskell ×1

ltac ×1