我在比较两张唐人街的清单。由于我比F#更熟悉Linq,所以我做了以下工作:let r1 = (rows1.Zip (rows2, fun r1 r2 -> rowComparer r1 r2)) .All (fun f -> f)
这引发了来自F# linter的两个抱怨。Lint: If `rowComparer` has no mutable arguments partially applied then the lambda can be removed. Lint: `fun x -> x` might be able to be refactored into `
使用F#,我试图扫描一个JSON文件,并将其数组与单个(随机生成的)数字数组进行比较。json的格式如下:
{"1":[#,#,#,#,#],"2":[#,#,#,#,#],...}
等的121项。我目前正在尝试Json.NET。我的问题是:
如何使用Json.NET导入本地文件?
我如何开始对json键进行简单调用,从而返回适合在for循环中运行它的数组值?
这是我所取得的进展的代码:
open System
open System.IO
open Newtonsoft.Json
(*open FSharp.Data
type Provid
我是f#的新手,我尝试编写一个程序,该程序应该遍历给定目录中的所有文件,并为每个类型为".txt“的文件添加一个id号+”完成“到该文件。
我的程序:
//const:
[<Literal>]
let notImportantString= "blahBlah"
let mutable COUNT = 1.0
//funcs:
//addNumber --> add the sequence number COUNT to each file.
let addNumber (file : string) =
let mutable str = F
最近开始使用Hadoop,并且很难理解一些事情。下面是我正在查看的一个基本的WordCount示例(计算每个单词出现的次数):
Map(String docid, String text):
for each word term in text:
Emit(term, 1);
Reduce(String term, Iterator<Int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, sum);
首先,Emit(w,1)应该做什么?我注意到,在所有示例中,我查看的第二个参数总是设置
我是一个彻头彻尾的F# n00b,所以我希望我能给你足够的信息。我创建了一个名为record的类。我用数据库中的数据创建了这个类的几个实例。然后,我将每条记录添加到记录列表中。我想用这些记录创建一个xml文档。
//this is the record data type i created. I also created a sender and recipient data
//type but those are probably not neccessary to understand the issue
type record(id:int, sender:sender, ?reci
我目前正在做一个项目,在这个项目中,我必须根据一些规则创建许多函数,并在以后重用这些函数。为此,我开始学习F#,在F#中学习似乎比在C#中更自然。
我设法创建了它们应该是的功能,但我在重用它们时遇到了一些问题。下面是一个非常简单的例子,来展示我想要做的事情。
let choice = 2
let fCreator (x:float) =
match choice with
|1 -> x * x
|2 -> x * 10.0
|3 -> x + 20.0
|_ -> x
我有一个全局变量选择,根据它在fCreator中选
我很难理解如何在F#中定义类,在该类中,我拥有没有声明值的属性。类似于c#代码的内容:
class Entity
{
public string Name { get; set; }
public List<string> Favorites { get; set;}
}
我只能用定义的类型声明类型,例如
type Entity =
member val Name = "" with get, set
当我指定null时,名称的类型将为null。
我有一个具有以下结构的csv文件:
第一行是标题行其余的行是数据线,每一行都有相同的逗号,所以我们可以用列来考虑数据。
我编写了一个小脚本来遍历文件的每一行,并返回包含列标题和该列中最大数据字符串长度的元组序列:
let getColumnInfo (fileName:string) =
let delimiter = ','
let readLinesIntoColumns (sr:StreamReader) = seq {
while not sr.EndOfStream do
yield sr.Read
我们知道,在F#中,seq是惰性评估的。我的问题是,如果我有一个值有限的seq,如何将其转换为包含其所有值的某种数据类型?
> seq { for i in 1 .. 10 do yield i * i };;
val it : seq<int> = seq [1; 4; 9; 16; ...]
非常感谢。
我有一个基于事件的FizzBuzz实现,如下所示
// Events in F#
type FizzBuzz() =
let _event = Event<int>()
member this.Event = _event.Publish
member this.Check n = _event.Trigger n
// Instantiate
let fizzBuzzer = FizzBuzz()
// Add an event handler
fizzBuzzer.Event.Add (function
| x when x%5=0 &
我有一个在数据集中返回的数据,看起来像这样:
Department 1 Product Name Units
Department 1 Product Name Units
Department 2 Product Name Units
Department 2 Product Name Units
Department 3 Product Name Units
Department 3 Product Name Units
我已经添加了一个Group Band,它将按Department分组,并在group footer
在F#中,您可以在函数签名上匹配模式。我想用一个函数来装饰一些函数,该函数测量函数的执行情况,并调用statsd。我目前的职能是:
let WrapFunctionWithPrefix(metrics:Metric.Client.IRecorder, functionToWrap, prefix) =
let metricsIdentifier = (sprintf "%s.%s" prefix Environment.MachineName)
using (metrics.StartTimer(metricsIdentifier)) ( fun metrics
我在F#中有一系列的国名。我想知道我在顺序中有多少个不同的国家条目。
countBy示例在和中使用if和else来获得密钥,但是由于我有大约240个不同的条目,我想我不需要为每个条目创建一个elif语句,对吗?
那么,是否可以选择使用另一个序列来获取countBy的密钥?
#load "packages/FsLab/FsLab.fsx"
open FSharp.Data
open System
type City = JsonProvider<"city.list.json",SampleIsList=true>
let cities = Cit