相关疑难解决方法(0)

F#运算符"?"

我只是阅读了这个页面上的信息,而一个新的?提到运营商,我很不清楚它的用途是什么.
任何人都可以提供一个快速解释,发布一个代码剪切该如何使用该运算符,并可能提到一个用例?
编辑:这真的很尴尬,我注意到了吗?Don的发行说明中不再提及运算符.知道为什么会这样吗?

f# visual-studio-2010

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

F#类型提供程序和数据处理

在上一个问题(使用静态类型语言中的异构数据)中,我询问了F#如何处理数据分析中的标准任务,例如操作无类型的CSV文件.动态语言擅长于基本任务

data = load('income.csv')
data.log_income = log(income)
Run Code Online (Sandbox Code Playgroud)

在F#中,最优雅的方法似乎是问号(?)运算符.不幸的是,在这个过程中我们失去了静态类型,仍然需要在这里和那里进行类型注释.

F#最令人兴奋的未来特征之一是类型提供商.在类型安全性损失最小的情况下,CSV类型提供程序可以通过动态检查文件来提供类型.

但数据分析通常并不止于此.我们经常通过一系列操作来转换数据并创建新的数据集.我的问题是,如果我们主要操纵数据,类型提供商可以提供帮助吗?例如:

open CSV // Type provider
let data = CSV(file='income.csv') // Type provider magic (syntax?)
let log_income = log(data.income) // works!
Run Code Online (Sandbox Code Playgroud)

这可以工作,但会污染全局命名空间.考虑添加列而不是创建新变量通常更为自然.有办法吗?

let data.logIncome = log(data.income) // won't work, sadly.
Run Code Online (Sandbox Code Playgroud)

当目标是创建新的派生数据集或清理数据集时,类型提供程序是否可以避免使用(?)运算符?

也许是这样的:

let newdata = colBind data {logIncome = log(data.income)}  // ugly, does it work?
Run Code Online (Sandbox Code Playgroud)

其他想法?

f# type-providers

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

标签 统计

f# ×2

type-providers ×1

visual-studio-2010 ×1