小编fla*_*ine的帖子

如何使用printf自定义自定义类型的输出?

我已经阅读了很多专家F#,正在构建一个实际的应用程序.在调试时,我已经习惯于传递这样的fsi命令,以使repl窗口中的内容清晰可见:

fsi.AddPrinter(fun (x : myType) -> myType.ToString())
Run Code Online (Sandbox Code Playgroud)

我想扩展它以使用printf格式化程序,所以我可以输入例如

printf "%A" instanceOfMyType 
Run Code Online (Sandbox Code Playgroud)

并控制自定义类型的输出.本书暗示可以做到这一点(第93页,"可以扩展通用结构格式以适用于任何用户定义的数据类型,F#网站上涵盖的主题"),但我没有找到任何关于如何实际上实现这一点.有谁知道怎么样?它甚至可能吗?

编辑:

我应该包含一个代码示例,它是我正在处理的记录类型,例如

type myType = 
    {a: int}        
    override m.ToString() = "hello"

let t = {a=5}
printfn "%A" t
printfn "%A" (box t)  
Run Code Online (Sandbox Code Playgroud)

两个印刷语句产生:

{a = 5;}
Run Code Online (Sandbox Code Playgroud)

printf f# string-formatting f#-interactive

30
推荐指数
2
解决办法
9423
查看次数

ComboBox周围出现神秘的红色边框

我有一个WPF应用程序 - 一个XBAP - 在主页面上有一个ComboBox.当我在ComboBox中选择一个项目时,事件处理程序会重建一个集合,该集合是列表框的数据源.看起来很简单,我之前在WPF中所做的所有事情.

这是从列表中选择项目后我的下拉列表的样子:

WTF?

红色边界来自哪里?我正在从头开始构建表单,现在没有任何样式或任何内容.项目中的任何地方都没有提到"红色"字样.一旦它出现它就不会消失,并且它出现在我置于控件之上的任何东西上.

这是标记:

<ComboBox.ItemTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Converter={StaticResource ResourceKey=DeviceInfoNameConverter}}"></TextBlock>
    </DataTemplate>
</ComboBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

更多细节:

  • 这是在IE8中运行的XBAP应用程序
  • 同一页面上的其他下拉控件不会执行此操作
  • 当我尝试使用Snoop检查控制树时,边框消失
  • 转换器不是问题的根源,我已经尝试直接绑定到底层对象上的属性,但仍然会出现该框.

我对搜索到目前为止唯一的猜测是,某种默认错误模板正在应用于控件.我正在使用WIA,VS输出窗口中出现了几个COM异常,显然与ListView的数据绑定有关.控件的数据源是WIA.DeviceInfo对象,转换器只是获取下拉文本的name属性.

wpf xbap

21
推荐指数
2
解决办法
2万
查看次数

Visual Studio - 有没有办法让调试会话后出现"输出"和"错误列表"窗口?

在调试会话结束多年关闭这两个窗口后,我发现可能有办法将它们关闭.我通常在调试时打开输出窗口,并且只定期检查错误列表以获取警告,并且无论如何我总是可以找到它们.希望其他人可能知道停止默认行为的方法?

visual-studio

18
推荐指数
1
解决办法
1万
查看次数

反正有没有在Qt Creator 4.0中停止自动CMake执行?

我喜欢Qt Creator 4的一些新的CMake功能,但只要相关文件发生变化,它就会重新运行cmake.有没有办法阻止这个?如果我正在进行一批更改,或者只是保存文件以免丢失我的工作,似乎没有办法告诉它等待.

cmake qt-creator

7
推荐指数
1
解决办法
1075
查看次数

如何在VS2010中调试已发布的XBAP文件?

我需要通过指定URL来调试完全信任的应用程序,或者理想情况下,从我打算将其部署到的Web应用程序中调试.我尝试过以下方法:

  • 从命令行运行"PresentationHost.exe -embedding",通过Visual Studio附加.IDE显示我的断点有效,直到我实际尝试加载.xbap文件,此时它显示没有加载符号.我的断点都没有被击中.我在其他地方的几个建议之前尝试了"mage -cc".

  • 项目的Debug面板中的硬编码URL,然后是F5.或者,"PresentationHost.exe -embedding -debug"并附加到进程然后在IE中加载.xbap.当页面出现时,两者都会导致以下错误:

System.ArgumentException:不支持URI格式.

   at System.IO.Path.NormalizePath(...)
   at System.IO.FileStream.Init(...)
   at System.IO.FileStream..ctor(...)
   at System.Windows.Interop.ApplicationLauncherXappDebug.GetIdFromManifest(...)
   at System.Windows.Interop.ApplicationLauncherXappDebug.GetApplicationIdentity()
   at System.Windows.Interop.ApplicationLauncherXappDebug.Initialize()
   at System.Windows.Interop.DocObjHost.MS.Internal.AppModel.IBrowserHostServices.Run(...)
Run Code Online (Sandbox Code Playgroud)

c# debugging xbap

5
推荐指数
1
解决办法
2518
查看次数

ASP.NET工作线程可以一次处理多个请求吗?

我知道ASP.NET将在池中的单个线程上执行请求.反之亦然吗?在请求完成之前,单个ASP.NET请求是否会独占持有工作线程,还是ASP.NET会在多个并发请求之间重用相同的线程?

asp.net multithreading

3
推荐指数
1
解决办法
6243
查看次数

sklearn GaussianNB - 结果不佳,[nan]概率

我正在为一堂课做一些关于性别分类的工作.我一直在使用SVMLight,结果不错,但我想在我的数据上尝试一些贝叶斯方法.我的数据集由文本数据组成,我已经完成了功能缩减,以便将某些贝叶斯方法的特征空间削减到更合理的大小.所有实例都通过tf-idf运行,然后规范化(通过我自己的代码).

我抓住了sklearn工具包,因为它很容易与我当前的代码库集成,但我从GaussianNB获得的结果都是一个类(在这种情况下为-1),并且预测的概率都是[nan].

我贴了一些相关的代码; 我不知道这是否足以继续下去,但我希望我只是在使用sklearn api时忽略了一些明显的东西.我有几个不同的功能集,我尝试通过它,也有相同的结果.使用训练集和交叉验证也是如此.有什么想法吗?可能是因为我的功能空间太稀疏了才能使用吗?我有300多个实例,其中大多数具有数百个非零特征.

class GNBLearner(BaseLearner):
    def __init__(self, featureCount):
        self.gnb = GaussianNB()
        self.featureCount = featureCount

    def train(self, instances, params):
        X = np.zeros( (len(instances), self.featureCount) )
        Y = [0]*len(instances)
        for i, inst in enumerate(instances):
            for idx,val in inst.data:
                X[i,idx-1] = val
            Y[i] = inst.c
        self.gnb.fit(X, Y)

    def test(self, instances, params):
        X = np.zeros( (len(instances), self.featureCount) )
        for i, inst in enumerate(instances):
            for idx,val in inst.data:
                X[i,idx-1] = val
        return self.gnb.predict(X)

    def conf_mtx(self, res, test_set):
        conf = [[0,0],[0,0]]
        for r, x …
Run Code Online (Sandbox Code Playgroud)

python machine-learning bayesian scikit-learn

1
推荐指数
1
解决办法
2148
查看次数