目前List<int>可以采用的索引是Int32,我可以选择Int64吗?
所以我可以使用像mylist [1000000000000]这样的东西.
在sortedlist队列中,queue.value [0]给出min键的对应值.如果我想让它给出最大键值?
我必须重写icomparer吗?
我想坚持record,不想回去object.所以我想知道是否有可能成为field一个record private?或做出private member的record.其他concrete types诸如此类的discriminated union呢?
或者,此要求是否违反了语言规范?
它是C#和F#之间的互操作
在F#中,
type test =
{
value: int
}
type Wrapper (value: test) =
member val Value = value with get, set
let trythis = new Wrapper(null) // error as expected
Run Code Online (Sandbox Code Playgroud)
但是,在C#中
var trythis = new Wrapper(null); //this runs fine
Run Code Online (Sandbox Code Playgroud) 例如,如果我在F#中编写了一个模块
module Lib
type A =
member this.x1 x = ...
let helpa x = ...
let helpb x = ...
type B =
member this.y1 x = ...
let helpc x = ...
typeA with
member this.x2 x = ...
typeB with
member this.y2 x = ...
Run Code Online (Sandbox Code Playgroud)
它在F#中运行良好open Lib,但是,如果我想在C#中使用它(我只对类型和成员函数感兴趣Lib),每次我创建一个我必须的类型new Lib.A(...).它变得相当烦人,没有办法省略模块名称.调用静态方法Lib.A.C()就更麻烦了.
然后,我尝试更换module用namespace,每个我介绍了一些辅助功能的时间我要创建一个新名称的新模块.偶尔我可以设法将所有辅助函数重新排列到1个模块中,但这会导致代码不太可读.
什么是更好的结构?
希望我拥有:Using * = Lib.*对于C#.
来自data.table手册:
事实上,我们非常喜欢它,data.table包含使用R的内部全局字符串缓存的字符向量的计数排序算法.对于包含许多重复项的字符向量(例如,键列中的分组数据),这尤其快.这意味着角色通常更倾向于因素.仍然完全支持因素,特别是有序因子(其中水平不按字母顺序排列).
是不是factor应该更容易做到这整数counting sort比character?
假设我有一个有列的数据框x, a, b, c我希望聚合a, b, c以通过函数从x列表中获取值y myfun,然后复制每个窗口/分区中所有行的值.
在R中data.table这只是一行: dt[,y:=myfun(x),by=list(a,b,c)].
在Python中,我想到的唯一方法是做这样的事情:
# To simulate rows in a data frame
class Record:
def __init__(self, x, a, b, c):
self.x = x
self.a = a
self.b = b
self.c = c
# Assume we have a list of Record as df
mykey = attrgetter('a', 'b', 'c')
for key, group_iter in itertools.groupby(sorted(df, key=mykey), key=mykey):
group = list(group_iter)
y = myfun(x.x for x in group)
for x …Run Code Online (Sandbox Code Playgroud) 我想实现类似的东西scalar_summary,但不能用于Op需要的东西Variable.如果我打电话
for i in 10000:
value = 0.2 * i
myfun(tag, value, i)
Run Code Online (Sandbox Code Playgroud)
在tensorboard事件中,我希望它生成一个名为tag的图,其中有一行.
我怎样才能做到这一点?
use std::collections::HashMap;
use std::collections::hash_map::Entry::*;
fn hook(k: &str, v: &str) {}
fn tt(k: String, v: String) -> Option<String> {
let mut a: HashMap<String, String> = HashMap::new();
match a.entry(k) {
Occupied(mut occupied) => {
let old = occupied.insert(v);
//hook(&k, &old);
Some(old)
}
Vacant(vacant) => {
let v = vacant.insert(v);
let k = vacant.key(); // Why doesn't it work?
//hook(&k, v);
None
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想hook在将密钥插入HashMap. 看来我得用Entry. 但是,我无法vacant.key()在vacant.insert.
我知道我可以通过spark.sparkContext.setLogLevel('INFO')日志设置日志级别,如下所示出现在终端中,但不能在 jupyter notebook 中。
2019-03-25 11:42:37 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2019-03-25 11:42:37 WARN SparkConf:66 - In Spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone and LOCAL_DIRS in YARN).
2019-03-25 11:42:38 WARN Utils:66 - Service 'SparkUI' could not bind …Run Code Online (Sandbox Code Playgroud) f# ×3
c# ×2
r ×2
apache-spark ×1
data.table ×1
pandas ×1
pyspark ×1
python ×1
rust ×1
sortedlist ×1
tensorboard ×1
tensorflow ×1