我应该学习NHaml吗?
它为经典的ASP.NET MVC视图提供了什么?优缺点都有什么?
您是否通过MVC Contrib项目使用它?
我越来越多地看到它了.例如......我看过Matthew Podwysocki使用ASP.NET MVC,NHaml和F#的博客文章!
我今天刚看到Visual Studio CTP的声明,我正在等待所有这些文件下载...
您是否已经尝试过CTP,或者以前的版本?你的想法是什么?还有一个问题您最想在Visual Studio 2010中看到哪些功能,现在就是这样,您怎么看?
在C#中没有内置矩阵函数,但在F#powerpack中有.
我不知道在F#中使用第三方或开源C#库,而是将有用位暴露给C#.
想知道是否有人已经想过这个,或者尝试过,以及这是不是一个好主意.
我应该将它作为一个类或一堆静态函数公开吗?
或者我应该创建一个C#包装类,并将该调用转到F#?或者让F#使用C#类作为输入和输出?
有什么想法吗?
回答下面的Hath:您可以直接在C#中使用F#库(运算符也是如此!):
using System;
using System.Text;
using Microsoft.FSharp.Math;
namespace CSharp
{
class Program
{
static void Main(string[] args)
{
double[,] x = { { 1.0, 2.0 }, { 4.0, 5.0 } };
double[,] y = { { 1.0, 2.0 }, { 7.0, 8.0 } };
Matrix<double> m1 = MatrixModule.of_array2(x);
Matrix<double> m2 = MatrixModule.of_array2(y);
var mp = m1 * m2;
var output = mp.ToArray2();
Console.WriteLine(output.StringIt());
Console.ReadKey();
}
}
public static class Extensions
{
public …Run Code Online (Sandbox Code Playgroud) 我还在努力研究F#的东西 - 试图弄清楚如何在F#中'思考',而不仅仅是翻译我所知道的其他语言.
我最近一直在考虑你之前和之后没有1:1地图的情况.List.map崩溃的情况.
其中一个例子是移动平均线,通常在平均n个项目时,长度为len的列表会产生len-n + 1个结果.
对于那里的大师来说,这是一个很好的方法吗(使用从Jomo Fisher捏的队列)?
//Immutable queue, with added Length member
type Fifo<'a> =
new()={xs=[];rxs=[]}
new(xs,rxs)={xs=xs;rxs=rxs}
val xs: 'a list;
val rxs: 'a list;
static member Empty() = new Fifo<'a>()
member q.IsEmpty = (q.xs = []) && (q.rxs = [])
member q.Enqueue(x) = Fifo(q.xs,x::q.rxs)
member q.Length() = (List.length q.xs) + (List.length q.rxs)
member q.Take() =
if q.IsEmpty then failwith "fifo.Take: empty queue"
else match q.xs with
| [] -> (Fifo(List.rev q.rxs,[])).Take()
| y::ys -> …Run Code Online (Sandbox Code Playgroud) 要求的简要说明
(这里有很多好的答案,感谢所有人,如果我得到这个飞行,我会更新).
探测器沿轨道运行,实时测量若干不同的物理参数(确定性),作为曲线距离的函数.用户可以在此过程中单击按钮以"标记"航点,然后使用GUI输入每个航点的详细信息(在人工时间,但数据采集继续进行).
在此之后,系统对获取的数据执行一系列计算/过滤/修改,同时考虑为每个航路点输入的约束.该过程的输出是一系列校正,也是曲线距离的函数.
该过程的第三部分涉及再次沿轨道运行,但这次将校正写入校正轨道的物理系统(仍然是曲线距离的函数).
我目前对您的输入/评论/警告的想法
我想确定的是我是否可以用PC + FPGA来做到这一点.FPGA会进行"数据采集",我会在PC上使用C#从缓冲区读取数据.航点信息可以通过WPF/Winforms应用程序输入,并存储在数据库/平面文件/任何待处理的"处理"中.
对于处理,我会使用F#.
FPGA将用于将信息"写入"物理机器.
我目前可以预见的一个问题是,处理算法是否需要采样频率,这使得缓冲的数据量太大.这意味着将一些处理卸载到FPGA - 至少是不需要用户输入的位.不幸的是,唯一的预处理算法是卡尔曼滤波器,用我用Google搜索的方法很难用FPGA实现.
我非常感谢您提供的任何反馈意见.
更新(此处及时添加额外信息)
在卡尔曼滤波器的入口处,我们每1ms看一次.但是在卡尔曼滤波器的另一侧,我们将每隔1米采样一次,我们所讨论的速度大约为2秒.
所以我想更准确的问题是:
我有一个带有长名称空间的大型项目,例如
CompanyName.Product.Component.Class
Run Code Online (Sandbox Code Playgroud)
使用沙堡(Sandcastle)构建名称空间的文档,但是那些冗长的名称空间确实破坏了最终chm文件中内容窗格的显示。我如何才能使其Component.Class至少显示在Treeview面板中?
和/或也许具有CompanyName作为扩展到的根节点,Product然后扩展到Component,扩展到Component下的所有名称空间?
查看今天我的代码中的函数,我想知道是否可以组合部分组合和优化:
let foo (X:float) y1 y2 dx =
y1 + (y2 - y1) * dx / X
Run Code Online (Sandbox Code Playgroud)
基本上,只需应用一个比率 - 所以前三个参数在给定的循环中通常是相同的.
我想也许如果我这样做:
let foo2 (X:float) y1 y2 dx =
let dy = (y2 - y1) / X
y1 + dy * dx
Run Code Online (Sandbox Code Playgroud)
当我部分应用前三个参数时,F#会变得聪明并为我优化,但是调试模式似乎并非如此(尽管我不确定我是否以正确的方式测试它).
问题是,这应该有效吗?如果不是有更好的方法(除了用两个参数编写另一个函数)?
我知道这个问题,但提问者似乎满足于另一个问题的答案(如何重载构造函数)
我有一个类作为一个可变类的高级memoizer,所以我可以把它视为外部的不可变:
type Wrapper(args) =
let tool = new MutableTool()
tool.Init(args) //<--"Unexpected identifier in definition"
let lookupTable = //create lookup using tool here
member this.Lookup(s) = //callers use lookupTable here
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何在"工具"上调用Init方法.我错过了什么?
我刚刚有一个Accurev的演示,这些流看起来像一个轻量级的方式来模拟代码/项目的工作流程.我听说过人们赞美Accurev的后端和抱怨性能.Accurev似乎对性能有所贡献,但我想获得一些真实世界的数据,以确保它不是演示的情况 - 运行良好.
有人有测试中的Accurev性能轶事或(甚至更好的)数据吗?
f# ×6
.net ×1
accurev ×1
algorithm ×1
architecture ×1
asp.net-mvc ×1
c# ×1
constructor ×1
debugging ×1
delphi ×1
fpga ×1
haml ×1
namespaces ×1
nhaml ×1
optimization ×1
queue ×1
real-time ×1
sandcastle ×1
statistics ×1