- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一系列由类型级整数索引的数据类型,我以“分段”方式将它们定义为某个类型类的实例,这在尝试派生另一个类的实例时会导致问题。为了说明,我将问题隔离如下。考虑这段代码:
{-# LANGUAGE ScopedTypeVariables, TypeSynonymInstances,
FlexibleInstances , UndecidableInstances #-}
data Zero
data Succ n
type One = Succ Zero
type Two = Succ One
type Three = Succ Two
class Nat n where
toInt :: n -> Int
instance Nat Zero where
toInt _ = 0
instance Nat One where ------------------------- START MODIFY
toInt _ = 1
instance (Nat n) => Nat (Succ (Succ n)) where
toInt _ = 2 + toInt (undefined :: n) --------- END MODIFY
toInt
似乎按预期工作。现在
Nat
包含所有整数
Zero
,
One
,
Two
等等。
class LikeInt n where
likeInt :: n -> Int
instance (Nat n) => LikeInt (Succ n) where
likeInt = toInt
(Nat (Succ n))
源自上下文
toInt
中“
(Nat n)
”的使用.
toInt
有一个类型为
Succ n
的参数,但
Nat
的唯一实例为
Zero
,
Succ Zero
和
(Nat n0) => Succ (Succ n0)
, 和
Succ n
与这些都不匹配。当我替换
MODIFY
时,成功编译支持此猜测。用原件挡住
instance (Nat n) => Nat (Succ n) where
toInt _ = 1 + toInt (undefined :: n)
likeInt
像 toInt
一样工作,即使使用修改后的 block ?这对我的实际项目很重要。
最佳答案
你不能只定义这个实例吗?
instance Nat n => LikeInt n where
likeInt = toInt
*Main> likeInt (undefined :: Zero)
0
*Main> likeInt (undefined :: One)
1
*Main> likeInt (undefined :: Two)
2
*Main> likeInt (undefined :: Three)
3
Nat
约束?
关于haskell - 类型类实例检查检测不到 "piecewise instances",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31470914/
我有一系列由类型级整数索引的数据类型,我以“分段”方式将它们定义为某个类型类的实例,这在尝试派生另一个类的实例时会导致问题。为了说明,我将问题隔离如下。考虑这段代码: {-# LANGUAGE Sco
在 sympy 中,如何声明一个对子函数中的多个变量具有多个限制的 Piecewise 函数? 这是我的背景和尝试: from sympy import Piecewise, Symbol, exp
我试图找到的傅里叶级数 像 simpy 一样: p = Piecewise((sin(t), 0 0) | (t < pi)), (0, (pi < t) | (t < 2*pi))), (t, 0
我正在尝试使用两个 x0 和 y0 坐标数组中的数据来创建一个使用提供的 x0 和 的函数>y0 计算分段的一系列线段。 为此,我创建了一个函数 import numpy as np import m
我正在学习关于模糊系统的类(class),我学习了 my notes在我的电脑上。这意味着我不得不时不时地在电脑上画图。由于这些图表定义明确,我觉得用 numpy 绘制它们是个好主意(我用 LaTeX
我希望从一组数据点生成一个最适合这些点的三次样条函数。 也就是说,寻求获得最适合数据的单个三阶多项式函数 - 而不是分段多项式。(最终目标是找到该函数二阶导数的最大值) 我已经尝试过scipy.int
我定义了一个分段复杂函数 import numpy as np def foo(x): return np.piecewise(x, [x>0], [np.exp(1j*x)]) 当我尝试评估
我想绘制以下累积分布函数 为此我想我可以使用 np.piecewise 如下 x = np.linspace(3, 9, 100) np.piecewise(x, [x 9], [0, float(
我的代码 我在一个较大的程序中有效地减少了以下代码片段: import sympy as sp print('sympy version:', sp.__version__) n = sp.symbo
我正在编写一个程序来进行三次样条插值。基本上,该程序将在某些间隔内拼凑三次多项式。如果可能的话,我想用piecewise[] 或其他类似的函数来绘制这个结果。 在我的代码中,我的方程在一个数组中,输出
我正在尝试使用 np.piecewise 定义一个多元分段函数,如下所示: X = np.array([ [1, 2], [3, 4], [5, 6] ]) pw = np.p
我正在尝试在 Mathematica 中绘制缓和函数的导数。它区分函数 OK,并且可以使用 % 绘制函数,但我希望能够通过将导数指定为函数 f[t_] 来绘制,然后 绘制[ f[t] , {t,-1,
我一直在尝试让 numpy.piecewise 将系数列表 {a_ij} 转换为分段三次多项式。每当我运行以下代码时, import math import numpy as np x = np.li
我想创建一个巨大的打包数据阵列,并将其保存在磁盘上。我正在使用 writePackedMessageToFd()。但是,由于输入数据非常大 (50GB),我需要将消息片段写入磁盘以释放内存。 Cap'
我正在尝试为一些数字信号处理构造一个分段函数,但我无法获得 numpy.piecewise 以允许我指定一个范围。 这里是我要输入的内容: t = np.arange(-10,10,1) x = la
我对为什么以下代码的答案是 10 而不是 1 感到困惑。有人可以帮助我了解 lambdify 发生了什么或者是什么导致了错误答案吗? import sympy from sympy.utilities
我想绘制一个分段函数,例如: import sympy as sym x = sym.symbols("x") f = sym.Piecewise((-1, x = 1)) sym.plotting.
我是一名优秀的程序员,十分优秀!