【发布时间】:2014-02-25 12:45:55
【问题描述】:
我正在尝试编写适合浮点、双精度等类型并使用算术运算的通用 Vector2 类型。是否有机会使用 C#、F#、Nemerle 或任何其他或多或少成熟的 .NET 语言来实现?
我需要一个解决方案
- (1) 良好的性能(与我单独编写的相同) Vector2Float、Vector2Double 等类),
- (2) 这将允许 代码看起来不错(我不想为每个类发出代码 运行时)
- (3) 并且会尽可能多地进行编译时检查。
出于 1 和 3 的原因,我不想使用动态。现在我正在检查 F# 和 Nemerle。
UPD:我希望有很多这种类型的数学代码。但是,如果可能的话,我更愿意将代码放在扩展方法中。
UPD2: 'etc' 类型包括 int(我实际上怀疑我会使用)和 decimal(我想我可能会使用,但不是现在)。使用扩展方法只是个人喜好问题 - 如果有充分的理由不使用,请告知。
【问题讨论】:
-
这个类型有什么作用?只存储数据?还是它也有方法?这些方法有什么作用? ...这很重要。
-
什么是“等”类型?
-
您可能会发现这篇文章很有用:tomasp.net/blog/fsharp-generic-numeric.aspx :-)
-
顺便说一句:这是一个完全有效的问题,而不是提到的 C# 问题的副本。 F# 有一些东西使它实际上比 C# 更好:-)
-
@ironic: 看看my answer here,应该可以用C#解决这个问题。