我注意到F#和C#中看似相同的代码不会执行相同的操作.F#的数量级更慢.作为一个例子,我提供的代码生成素数/给出F#和C#中的第n个素数.我的F#代码是:
let rec isprime x =
primes
|> Seq.takeWhile (fun i -> i*i <= x)
|> Seq.forall (fun i -> x%i <> 0)
and primes =
seq {
yield 2
yield! (Seq.unfold (fun i -> Some(i, i+2)) 3)
|> Seq.filter isprime
}
let n = 1000
let start = System.DateTime.Now
printfn "%d" (primes |> Seq.nth n)
let duration = System.DateTime.Now - start
printfn "Elapsed Time: "
System.Console.WriteLine duration
Run Code Online (Sandbox Code Playgroud)
而C#看起来像这样:
class Program
{
static bool isprime(int n)
{
foreach (int p …Run Code Online (Sandbox Code Playgroud) c ++概念中有什么新东西?根据我的理解,它们在功能上等同于使用static_assert,但是以"漂亮"的方式意味着编译器错误将更具可读性(因为Bjarne Stroustup说你不会得到10页或错误,而只是一个).
基本上,您可以使用概念实现的一切都是真的static_assert吗?
有什么我想念的吗?
您不能将选择标记放在all标记内.那么,是否有任何解决方法来获得此功能?例如,我有以下<settings>标签:
<settings>
<logging />
<sending />
<useonly />
</settings>
Run Code Online (Sandbox Code Playgroud)
或类似的东西
<settings>
<logging />
<notuseonly />
<sending />
</settings>
Run Code Online (Sandbox Code Playgroud)
所以我想防止<useonly>和<notuseonly>一起出现,而顺序并不重要.如果允许,在XSD中它看起来像:
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" ref="sending" />
<xs:element minOccurs="0" maxOccurs="1" ref="logging" />
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref ="useonly" />
<xs:element minOccurs="0" maxOccurs="1" ref ="notuseonly" />
</xs:choice>
</xs:all>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
假设我要改写这个:
main.o: main.cpp
g++ -c main.cpp
factorial.o: factorial.cpp
g++ -c factorial.cpp
hello.o: hello.cpp
g++ -c hello.cpp
Run Code Online (Sandbox Code Playgroud)
以更通用的方式,如下所示:
SOURCES = main factorial hello
$(SOURCES).o: $(SOURCES).cpp
g++ -c $(SOURCES).cpp
Run Code Online (Sandbox Code Playgroud)
我怎么做?
我需要一个文本控件,用户可以在其中编辑文本,并且文本的某些部分可以根据文本具有不同的颜色。基本上,想象一下 Visual Studio 源文件编辑器或任何其他为源代码着色的源文件编辑器。那是什么WPF控件?据我所知,WPF 中的三个选项都不适合:
文本框不允许使用颜色
TextBlock不允许用户编辑文本
RichTextBox允许太多 - 我只想要颜色。
也许 RichTextBox 可以修复其他文本格式(即字体、粗体、斜体)?有什么想法吗?
c# ×1
c++ ×1
c++-concepts ×1
colors ×1
f# ×1
makefile ×1
performance ×1
primes ×1
richtextbox ×1
textbox ×1
variables ×1
wpf ×1
xsd ×1