小编Tri*_*Gao的帖子

如何在F#中读取XML?

我想知道使用XmlReader读取XML在惯用的功能样式中会是什么样子.即如何处理作为有状态实体的XmlReader.有一个很好的例子吗?

f# xmlreader

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

这个语法在Haskell中意味着什么:_ | _或(_ | _)

在许多受人尊敬的文件中,我一直看到这个相当令人尴尬的事情:_|_或者(_|_)

无法找到它的定义(Google不能很好地使用符号).那么究竟是什么呢?

haskell

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

如何制作CookieContainer的副本?

鉴于,CookieContainer的实例不是线程安全的.

此类型的任何公共静态(在Visual Basic中为Shared)成员都是线程安全的.任何实例成员都不保证是线程安全的.

所以事实证明,如果没有同步,我不能在多个并发HTTP请求中使用相同的容器.不幸的是,MSDN的文档不清楚如何正确地同步它.

解决方案是为每个请求使用主容器的副本,一旦请求完成,副本中的cookie可以合并回主容器.创建副本和合并可以以同步方式完成.

所以问题是:如何复制CookieContainer类的实例?

.net c# cookies

3
推荐指数
2
解决办法
3467
查看次数

是否有类似Option <'a>的类型可以在None中保存字符串?

我需要提供一个带有None结果的解释性消息,所以基本上我希望我能够做到这样的事情:

let func x y z = if x y then Some(z) else None("It didn't work out, because blah blah blah")
Run Code Online (Sandbox Code Playgroud)

这有标准类型吗?

如果不是,我可以使用相同的Some和None名称作为我自己的类型吗?

更新:

我尝试创建自己的联盟​​:

type CanBe<'a> =
| Some of 'a
| None of string
Run Code Online (Sandbox Code Playgroud)

它似乎工作,不是吗?

f#

3
推荐指数
2
解决办法
130
查看次数

F#可以为管理非确定性提供什么?

在与现实世界对话的应用程序中,使用非确定性函数是不可避免的.明确区分确定性和非确定性是很重要的.

Haskell有IO monad通过查看我们知道它之外的所有内容都是纯粹的来设置不纯的上下文.哪个好,如果你问我,在单元测试时,可以分辨出他们的代码哪个部分最终是可测试的,哪个不是.

我找不到任何允许在F#中分离两者的东西.这是否意味着没有办法做到这一点?

f# purely-functional

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

递归函数与Haskell中的递归lambdas

我有点困惑.在Haskell中定义普通的递归函数没有问题.同时,还有fix通过固定点定义递归lambda 的标准函数.但是除了可读性较低之外,与直接调用自身的常规递归函数相比,定义的递归lambda具有应用程序开销.那么我在哪里需要递归的lambdas和fix

haskell fixpoint-combinators

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

有没有一种标准的方法来匹配2个列表与Haskell中的自定义匹配函数?

我知道标准的方式是

(Eq z) => matchLists :: [x] -> [x] -> Bool
matchLists xs ys = xs == ys
Run Code Online (Sandbox Code Playgroud)

但我有一个特殊的元素匹配函数,它从外部传递,我无法控制它.

所以我正在寻找的是

matchLists :: (x -> x -> Bool) -> [x] -> [x] -> Bool
Run Code Online (Sandbox Code Playgroud)

(Hoogle说没有)

你最终会得到一个带有这样的签名的自定义函数,或者你会做什么?

编辑:

zip函数不能满足我的需要,因为结果列表具有2个输入列表中的最小长度

编辑:

你觉得这怎么样?

--matchListsWith :: (a -> a -> Bool) -> [a] -> [a] -> Bool
matchListsWith :: (a -> b -> Bool) -> [a] -> [b] -> Bool
matchListsWith _ [] [] = True
matchListsWith _ (_:_) [] = False
matchListsWith …
Run Code Online (Sandbox Code Playgroud)

haskell

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

接口+新的vs类+ TypeScript中的构造函数

在* .d.ts文件中,有什么区别:

declare module "m1" {
}
Run Code Online (Sandbox Code Playgroud)

declare module m1 {
}
Run Code Online (Sandbox Code Playgroud)

另外,两者之间有什么区别?

declare module "m1" {
    export class c1 {
        constructor(value: string);
    }
} 
Run Code Online (Sandbox Code Playgroud)

declare module "m1" {
    export interface c1 {
        new(value: string);
    }
}
Run Code Online (Sandbox Code Playgroud)

typescript

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

如何阻止执行git commit --amend的对话框

运行时弹出一个对话框:

git commit --amend
Run Code Online (Sandbox Code Playgroud)

这要我查看这些消息.有没有办法省略此对话框并保持上次提供的相同消息?

git

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

可以为元组设置一个特殊的Show实例吗?

我正在使用所谓的标记,这些标记是带有字符串和标记的元组,我希望我可以使用以下格式在屏幕上呈现:[TAG: VALUE]我不能这样做,因为我没有做正确的事情.这是设置:

type Token value tag = ([value], tag)
data Tag = Whitespace | Alpha | Digit | Punctuation | Terminal
instance Show Tag where
    show Alpha = "A"
    show Whitespace = "W"
    show Digit = "D"
    show Punctuation = "P"
    show Terminal = "|"
type TextToken = Token Char Tag    
instance Show TextToken where
    show (values, tag) = "[" ++ show tag ++ ": " ++ values ++ "]"
Run Code Online (Sandbox Code Playgroud)

在编译时崩溃:

Illegal instance declaration for `Show TextToken'
  (All …
Run Code Online (Sandbox Code Playgroud)

haskell

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