小编nic*_*las的帖子

F#中的AutoOpen属性

使用AutoOpen属性的推荐原则是什么?

(这个问题可能是在类似命名类型上何时使用模块功能VS静态功能的延续)

专家F#指出"当你定义ad hoc顶级运算符和函数时,这可能很有用:"

因此,这似乎可以减少代码组织中的模块角色,当您在技术上需要编写代码但从客户端角度删除它的存在时.

还有别的吗?你什么时候使用它?

f# code-organization

28
推荐指数
2
解决办法
4075
查看次数

ggplot中的双点

我找不到密度附近双点的文档

set.seed(1234)
df <- data.frame(cond = factor(rep(c("A","B"), each=200)), rating = c(rnorm(200),rnorm(200, mean=.8)))
print(head(df))
print(ggplot(df, aes(x=rating)) + 
    geom_histogram(aes(y=..density..),      # Histogram with density instead of count on y-axis
                   binwidth=.5,
                   colour="black", fill="white") +
    geom_density(alpha=.2, fill="#FF6666") +
    geom_vline(aes(xintercept=mean(rating, na.rm=T)),   # Ignore NA values for mean
               color="red", linetype="dashed", size=1))
Run Code Online (Sandbox Code Playgroud)

你知道他们代表什么运营商吗?

编辑

我知道它是什么并不在GEOM使用时,我想知道它是什么.例如,单点运算符定义为

> .
function (..., .env = parent.frame()) 
{
    structure(as.list(match.call()[-1]), env = .env, class = "quoted")
}
<environment: namespace:plyr>
Run Code Online (Sandbox Code Playgroud)

如果我重新定义密度,那么..density ..有不同的效果,所以看起来XX - > ..XX ..是一个运算符.我想找到它是如何定义的.

r ggplot2

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

FSharp中的事件和可观察事件

是否相同/更好地工作

在功能上看起来是等价的,我猜不同之处在于"语义":

  • 我们是否在有权访问事件内部状态的边界内?
  • 或者我们是否将此事件接口视为流向我们公开的被动源

这是正确的想法吗?

events f# reactive-programming observable

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

我可以在F#中提供Type作为Type提供者的输入吗?

是否有任何陷阱我应该注意这样做?

你知道我可能遇到的同一个pb的现有代码吗?

THKS

f# type-providers

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

适用于monad是什么X是comonad

我们可以为X解决这个等式吗?

适用于monad是什么X是comonad

monads haskell applicative comonad

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

与fsharp中的typeof匹配

第一场比赛有效,但不是第二场比赛.除了使用if/elif链之外,有没有办法在不声明变量的情况下进行匹配?

(注意我使用值elem,而我匹配变量t)

  let t = typeof<string>
  match propType with
  | t               ->  elem.GetValueAsString() :> obj
  | typeof<string>  ->  elem.GetValueAsString() :> obj
Run Code Online (Sandbox Code Playgroud)

f# design-patterns if-statement match

11
推荐指数
2
解决办法
5141
查看次数

fsx脚本引用一个引用很多dll的DLL

我对以下问题采取何种策略.我想在dll中使用一个简单的类,它有各种dll的链接,各种版本等.

作为fsx文件,我的脚本没有显示错误.但它在fsharp互动中运行它告诉我

error FS0074: The type referenced through 'theTypeIWantToUse' 
is defined in an assembly that is not referenced. 
You must add a reference to assembly 'Assembly'.
Run Code Online (Sandbox Code Playgroud)

当然会引用程序集,所以我想我需要添加引用它自己引用的dll.

有什么方法可以指向编译项目的dll环境,它以递归方式引用脚本中的相关dll吗?

我还有其他策略,但要手动完成吗?

最终解决方案

刘涛写了一个附加组件,如果你可以用它来同步.它可以在这里找到

此处还存在更新的脚本 如果有人感觉这样做,加载仍然需要拓扑加载.

f# f#-interactive fsi

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

9
推荐指数
2
解决办法
1142
查看次数

声明性进度条绑定

在将按钮的命令绑定到动作之后,我调用一个公开progress事件的对象.

event System.EventHandler<ProgressChangedEventArgs> ProgressChanged
Run Code Online (Sandbox Code Playgroud)

我想以最好的方式在我的XAML中显示它.


一种方法是在我的VM中公开两个可绑定字段

member x.Iteration with get()     = _iteration
                   and set(v:int) = _iteration <- v
                                    x.NotifyPropertyChanged <@this.Iteration@>

member x.IterationVisible with get()      = _iterationVisible
                          and set(v:bool) = _iterationVisible <- v
                                            x.NotifyPropertyChanged <@this.IterationVisible@>
Run Code Online (Sandbox Code Playgroud)

然后我被调用来执行动作我只会更新属性

member x.CompleteInference(algorithm:IGeneratedAlgorithm) =
    x.IterationVisible <- true
    algorithm.ProgressChanged.Add(fun args -> x.Iteration <- args.Iteration)
    algorithm.run()
    x.IterationVisible <- false
Run Code Online (Sandbox Code Playgroud)

这导致了两个问题:

  • 是否有一个直接的方式F#揭露progressChanged事件,而无需通过这种中间去Iteration属性,可以通过WPF来处理?它是我们可以得到/做的最具声明性的我们总是要在某个地方存储一些状态吗?

  • 另外,是否有一种自然的方式来完全在XAML中进行 "状态机"绑定?

wpf xaml f#

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

打印免费monad

可以将一个自由monad转换为任何其他monad,但是给定一个类型的值Free f x,我想打印整个树,而不是将生成的AST的每个节点映射到另一个monad中的某个其他节点.

Gabriel Gonzales 直接使用该值

showProgram :: (Show a, Show r) => Free (Toy a) r -> String
showProgram (Free (Output a x)) =
    "output " ++ show a ++ "\n" ++ showProgram x
showProgram (Free (Bell x)) =
    "bell\n" ++ showProgram x
showProgram (Free Done) =
    "done\n"
showProgram (Pure r) =
    "return " ++ show r ++ "\n"
Run Code Online (Sandbox Code Playgroud)

可以抽象为

showF :: (x -> b) -> ((Free f x -> b) -> f (Free f …
Run Code Online (Sandbox Code Playgroud)

monads haskell traversal free-monad

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