小编Yin*_*Zhu的帖子

是否可以在F#中执行函数重载?

就像是

let f x = log(x)
Run Code Online (Sandbox Code Playgroud)

后来我可以将f应用于矩阵,向量或浮点数.

我想这是不可能的,因为F#是严格静态类型的.任何其他模式来克服这个问题?

谢谢!

.net f# functional-programming

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

如何禁用Excel自动识别数字和文本

我用Python生成了一个CSV文件.但是当我在Excel中打开它时,如果可以转换,Excel会自动将字符串识别为数字.

例如,33E105变成33*10^105,实际上是ID,而不是数字.

如何在打开CSV文件时在Excel中禁用此功能?或者我需要求助于excel-python库来输出excel文件并自己指定格式?

我也在网上找到了一个没有好答案的类似问题.

谢谢!

python excel

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

F#是否与C#的"不安全"块具有相同的语法

大量的阵列边界检查会降低速度,对于2D阵列尤其如此.有没有办法在F#中编写不安全的代码块?

.net c# arrays f#

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

F#的timeit函数

我想写点像

let timeit (x:'a->'b) =
    let start = System.DateTime.Now
    x
    let duration = System.DateTime.Now - start
    printfn "time usage = %A" duration.Milliseconds 
    ()
Run Code Online (Sandbox Code Playgroud)

它适用于

let matrixtest() =
    let x = vector[1.;2.;4.]
    let y = matrix[[1.;2.;4.;];[3.;4.;9.;]]
    printfn "%A" (y * x)
    ()
Run Code Online (Sandbox Code Playgroud)

但不是

let rec fib x = 
        match x with
        | 0 | 1 -> 1
        | n -> fib (n-1) + fib (n-2)
Run Code Online (Sandbox Code Playgroud)

sa F#是静态类型的.

任何的想法?谢谢.

.net f#

7
推荐指数
4
解决办法
957
查看次数

在Eclipse中创建Scala脚本文件

我在玩Scala.我需要的只是功能定义的早午餐,但在Eclipse中我只能创建.scala一个函数def必须在对象或类中的文件.

但我在这里看到一个Scala脚本,这里没有使用对象来包装所有函数.

我当然可以使用一个对象来包装我的所有函数,但我只是想知道它是否是必需的.谢谢!

eclipse scripting scala

7
推荐指数
1
解决办法
1809
查看次数

如何用"?"读取CSV行?

可以使用字符串拆分功能对一个简单的CSV行进行吐出.但有些线路可能有",例如

"good,morning", 100, 300, "1998,5,3"
Run Code Online (Sandbox Code Playgroud)

因此直接使用字符串拆分不会解决问题.

我的解决方案是先使用,然后将字符串与字符串的"开头或结尾分开,然后将字符串组合起来.

这个问题的最佳做法是什么?

我很感兴趣,如果有一个Python或F#代码片段.

编辑:我对实现细节更感兴趣,而不是使用库.

python csv

6
推荐指数
1
解决办法
4309
查看次数

如何在F#中实现abs,sign等

我找到:

abs -10
abs -10L
Run Code Online (Sandbox Code Playgroud)

都工作.所以我想知道F#是如何实现这个并在源代码中进行搜索的:

    type AbsDynamicImplTable<'T>() = 
    let AbsDynamic x            = AbsDynamicImplTable<_>.Result x

    [<CompiledName("Abs")>]
    let inline abs (x: ^T) : ^T = 
         AbsDynamic x
         when ^T : ^T = absImpl x
Run Code Online (Sandbox Code Playgroud)

我对这些感到困惑.

正如我所知,在函数中abs,我们必须将输入与0进行比较,并且对于不同的类型有不同的0.

谢谢.

f# inline

6
推荐指数
2
解决办法
1235
查看次数

可视化.NET dll中的类结构

我得到一个包含两个DLL的库,但没有详细的文档.我希望快速了解它的类设计.

我知道我可以使用Visual Studio中的对象浏览器来查看它们.但它不是很直观.是否有工具显示库的依赖关系图,或者更正式地显示UML图.输入只是DLL.

谢谢.

.net c#

6
推荐指数
1
解决办法
2264
查看次数

OCaml中的IEnumerable <T>

我经常使用F#.F#中的所有基本集合都实现了IEumberable接口,因此使用SeqF#中的单个模块访问它们是很自然的.这在OCaml中是否可行?

另一个问题是,'a seq在F#是懒惰的,例如我可以创建一个序列1,以100使用{1..100}以上冗长:

seq { for i=1 to 100 do yield i }
Run Code Online (Sandbox Code Playgroud)

在OCaml中,我发现自己使用以下两种方法来解决此功能:

  1. 生成一个列表:

    let rec range a b = 
      if a > b then []
      else a :: range (a+1) b;;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或采用显式递归函数.

第一个生成额外的列表.第二个打破抽象,因为我需要使用更高阶函数(如map和)在序列级别上操作fold.

我知道OCaml库有Stream模块.但它的功能似乎非常有限,不像'a seqF#那样通用.

顺便说一句,我最近使用OCaml玩Project Euler问题.所以有很多序列操作,在命令式语言中将是具有复杂体的循环.

f# ocaml functional-programming

6
推荐指数
2
解决办法
473
查看次数

用于调试phantomjs脚本的GUI

我正在使用phantomjs来构建一个Web爬虫.我当前的抓取工具是使用selenium的Python脚本,需要运行Firefox浏览器.虽然Selenium适合调试脚本(因为我可以使用firebug来检查网页),但是如果没有GUI,它就无法部署在linux服务器上.所以我试图将我的Python脚本翻译成phantomjs.

要调试phantomjs脚本,我保存页面源html并将png屏幕截图渲染到磁盘,然后在Firefox中打开它以检查源页面.我想知道是否有更好的方法来做到这一点,例如phantomjs的插件等.

phantomjs

6
推荐指数
2
解决办法
8597
查看次数

标签 统计

f# ×5

.net ×4

c# ×2

functional-programming ×2

python ×2

arrays ×1

csv ×1

eclipse ×1

excel ×1

inline ×1

ocaml ×1

phantomjs ×1

scala ×1

scripting ×1