小编Xod*_*rap的帖子

R强制本地范围

这可能不是正确的术语,但希望我可以理解我的观点.

我经常最终做类似的事情:

myVar = 1
f <- function(myvar) { return(myVar); }
# f(2) = 1 now
Run Code Online (Sandbox Code Playgroud)

R愉快地使用了函数范围之外的变量,这让我摸不着头脑,想知道我怎么可能得到我的结果.

是否有任何选项说"强迫我只使用之前已在此功能范围内分配值的变量"?use strict例如,Perl就是这样做的.但我不知道R有相当于my.


编辑:谢谢,我知道我对他们的看法不同.实际上,这个例子是专门为说明这个问题而创建的!

我想知道当我这样做时R是否可以自动警告我.

编辑2:此外,如果Rkward或其他IDE提供此功能,我也想知道.

r

37
推荐指数
6
解决办法
7355
查看次数

Haskell Constraint不小于实例头

有些戒指可以配备标准功能:

class (Ring.C a) => EuclideanDomain a where
  norm :: a -> Integer
Run Code Online (Sandbox Code Playgroud)

使用此功能,可以以明显的方式订购戒指:

compare x y = compare (norm x) (norm y)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何表明这一点.我试着这样做

instance (EuclideanDomain a, Eq a) => Ord a where
Run Code Online (Sandbox Code Playgroud)

但这给了我一些警告,当我启用相关的编译器标志时,它告诉我"约束不小于实例头" - 如果我启用UndecidableInstances,一切都会变成地狱.

有办法做我想要的吗?

haskell

31
推荐指数
2
解决办法
4091
查看次数

OCaml显式类型签名

在Haskell中,明确声明函数的类型签名被认为是一种好习惯,即使它(通常)可以推断出来.看起来这在OCaml中甚至不可能,例如

val add : int -> int -> int ;;
Run Code Online (Sandbox Code Playgroud)

给了我一个错误.(虽然我可以制作type只提供签名的模块.)

  1. 我是否正确,这在OCaml中是不可能做到的?
  2. 如果是这样,为什么?OCaml的类型系统似乎与Haskell完全不同.

syntax ocaml types type-inference

30
推荐指数
2
解决办法
2万
查看次数

Javascript的线性代数库?

我不需要任何花哨的东西; 基本上,如果它会让我做一些基本的Matrix*Matrix的东西,我会很高兴.

javascript linear-algebra

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

HTML5必需的输入样式

在HTML 5中,我们可以将输入标记为required,然后使用[required]CSS中的伪选择器选择它们.但是我只想在他们尝试提交表单时设置样式而不填写必需的元素.这有选择器吗?弹出的小消息框怎么样?

validation html5 css3 required

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

C#图表旋转标签

我有一个简单的图表,我希望x轴上的标签旋转45度.我究竟做错了什么?

Chart c = new Chart();
c.ChartAreas.Add(new ChartArea());
c.Width = 200;
c.Height = 200;
Series mySeries = new Series();
mySeries.Points.DataBindXY(new string[] { "one", "two", "three" }, new int[] { 1, 2, 3 });
mySeries.LabelAngle = 45; // why doesn't this work?
c.Series.Add(mySeries);
Run Code Online (Sandbox Code Playgroud)

输出是:

IMG

我正在使用System.Web.UI.DataVisualization.Charting中的图表.

c# charts

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

Haskell从左到右运行

我有一个我经常使用的函数,它允许我以对我来说更自然的方式编写代码.

infixl 6 $:
($:) :: a -> (a -> b) -> b
a $: f = f a
Run Code Online (Sandbox Code Playgroud)

这让我做了类似的事情

let x = getData
        $: sort
        $: group
        $: aggregate
Run Code Online (Sandbox Code Playgroud)

代替

let x = aggregate 
        $ group 
        $ sort 
        $ getData
Run Code Online (Sandbox Code Playgroud)

我最近了解到Clojure内置了类似的内容(我不太了解Clojure,但我认为它会被写入(-> getData sort group aggregate)?)这让我想知道Haskell是否也内置了它.但Hoogle 没有任何结果.

是否有包含类似内容的标准库?如果我有这样一个共同的部分是特殊的,它可能使我的代码很难让其他人阅读.

haskell clojure

18
推荐指数
2
解决办法
939
查看次数

Haskell无限列表的笛卡尔积

我想从基础对生成一个向量空间,它看起来像:

genFromPair (e1, e2) = [x*e1 + y*e2 | x <- [0..], y <- [0..]]
Run Code Online (Sandbox Code Playgroud)

当我检查输出时,它就像我得到的那样[0, e2, 2*e2,...](即x永远不会超过0).当我考虑如何编写代码来执行此列表理解时,哪种有意义.

我写了一些代码来从原点扩展"shell"(首先是0的整数,然后是norm 1,然后是norm 2 ......)但是这有点烦人且特定于Z ^ 2 - 我有为Z ^ 3或Z [i]等重写它.有更清洁的方法吗?

haskell

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

找到快速检查失败的值

当一个值未通过QuickCheck测试时,我想用它进行调试.有什么方法可以做我喜欢的事情:

let failValue = quickCheck' myTest
in someStuff failValue
Run Code Online (Sandbox Code Playgroud)

如果我的数据read能够,那么我可能会破解某种方式从IO中获取它,但事实并非如此.

haskell quickcheck

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

模板haskell中的数据构造函数

我正在尝试创建环Z/n(像普通算术一样,但模数为整数).一个示例实例是Z4:

instance Additive.C Z4 where
  zero = Z4 0
  (Z4 x) + (Z4 y) = Z4 $ (x + y) `mod` 4
Run Code Online (Sandbox Code Playgroud)

对于戒指等等.我希望能够快速生成这些东西,我认为这样做的方法是使用模板haskell.理想情况下,我只是想让$(makeZ 4)Z4像上面定义的那样吐出代码.

我虽然遇到了很多麻烦.当我这样做时,genData n = [d| data $n = $n Integer]我得到"数据/新类型声明中的解析错误".如果我不使用变量[d| data Z5 = Z5 Integer |],它确实有效:这必然意味着我正在做一些奇怪的变量.我不确定是什么; 我尝试通过newName构建它们,但似乎也没有用.

任何人都可以帮我解决这里发生的事情吗?

haskell template-haskell

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