cmd /批处理文件可以打开并关闭"echo".所以在PowerShell中,我有一堆"写主机"输出,我想在某处打开/关闭写主机以便于调试.
PowerShell有这样的功能吗?
Haskell有"elem"谓词来表达:
Prelude> 5 `elem` [2,4..10]
False
Run Code Online (Sandbox Code Playgroud)
在F#中,如何方便地判断值是在列表,数组,seq或map还是字典中?
在英语语义中,“类型推导”是否等于“类型推断”?
我不确定是否
谢谢。
例如,如果我有
namespace a
namespace b
{
class C...
class D...
}
Run Code Online (Sandbox Code Playgroud)
那么在编译之后,在IL文件中,命名空间信息在哪里?我是否得到两个名为abC和abD的类,其中类名以名称空间名称作为前缀?
或者我在汇编文件中获得了一个名称空间ab,并在其中包含C/D类,就像C#代码一样?
定义列表时,我们使用没有额外空格的挂点,如下所示:
Prelude> [3..5]
[3,4,5]
Prelude> [3 .. 5]
[3,4,5]
Run Code Online (Sandbox Code Playgroud)
但是与枚举一起使用似乎需要额外的空格:
Prelude> [LT..GT]
<interactive>:2:2: Not in scope: ‘LT..’
<interactive>:2:2:
A section must be enclosed in parentheses thus: (LT.. GT)
Prelude> [LT .. GT]
[LT,EQ,GT]
Run Code Online (Sandbox Code Playgroud)
所以问题是:它是Haskell中的语法规则吗?或者与实现相关?
F#中的哪些元素是惰性评估的,哪些元素是急切评估的?据我所知,如果"seq"是懒惰的评估,它是否意味着"列表"是急切评估的?我是如何证明的?谢谢
List是Haskell的默认数据类型,为什么我们仍然需要Data.Sequence?Data.Seq是否意味着可以随机访问的C样式数组?
如果是,我认为这意味着Data.Sequence存储有固定的内存缓冲区,因此,急切的评估类型.只是一个猜测,你会帮忙纠正吗?谢谢.
是否=default仅适用于特殊的成员函数?我尝试了以下内容并且没有编译:
struct A{
A(int, char)=default;
int i;
char c;
};
Run Code Online (Sandbox Code Playgroud) 没有类型规范,F#函数定义似乎只接收int类型.我不想使用泛型编程,只想声明一个函数来接收2个浮点类型,将它们加在一起:
> let g a b=a+b;;
val g : a:int -> b:int -> int
Run Code Online (Sandbox Code Playgroud)
如何改变我的陈述?谢谢.
我刚试过这个:
Prelude> [x*2|x<-[1..10]]
[2,4,6,8,10,12,14,16,18,20]
Run Code Online (Sandbox Code Playgroud)
好吧,它似乎不像F#的"seq",它是懒惰的评估.这里所有元素都打印出来,所以"列表理解"似乎是热切的评价.
如果我想建立一个"懒惰评估"的怎么办?谢谢.
haskell ×4
f# ×3
list ×3
c++ ×2
evaluation ×2
function ×2
c# ×1
c++11 ×1
contain ×1
default ×1
definition ×1
eager ×1
echo ×1
il ×1
inline ×1
member ×1
namespaces ×1
parsing ×1
powershell ×1
seq ×1
sequence ×1
space ×1
types ×1
write-host ×1