相关疑难解决方法(0)

范围A到B,其中A> B在F#中

我刚刚在F#中发现了一些我称之为怪癖的东西,并且想知道它是设计还是错误,如果是设计,为什么会如此...如果你写第一个术语的任何范围表达式大于第二项,返回的序列为空.看看反射器表明这是设计的,但我无法找到它必须如此的原因.重现它的一个例子是:


[1..10] |> List.length
[10..1] |> List.length
Run Code Online (Sandbox Code Playgroud)

第一个将打印出10,而第二个将打印出0.测试在F#CTP 1.9.6.2中进行.

编辑:感谢您建议明确范围,但仍然有一个案例(这是启发我提出这个问题的原因)将不会被涵盖.如果A和B是变量并且没有一个比其他变量更大,尽管它们总是不同的怎么办?考虑到范围表达式似乎在编译时似乎没有得到优化,是否有任何充分的理由来确定步骤(未明确指定)的代码,如果A和B是不允许负步骤的情况?

f#

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

标签 统计

f# ×1