小编s95*_*163的帖子

函数式编程中"无点"风格的优缺点是什么?

我知道在某些语言(Haskell?)中,努力是实现无点样式,或者永远不要通过名称显式引用函数参数.这对我来说是一个非常难以掌握的概念,但它可以帮助我理解这种风格的优点(或者甚至是缺点).谁能解释一下?

f# functional-programming pointfree

66
推荐指数
3
解决办法
4311
查看次数

找不到SparkSQL错误表

我将RDD [myClass]转换为数据帧,然后将其注册为SQL表

my_rdd.toDF().registerTempTable("my_rdd")
Run Code Online (Sandbox Code Playgroud)

该表是可调用的,可以使用以下命令演示

%sql

SELECT * from my_rdd limit 5
Run Code Online (Sandbox Code Playgroud)

但是下一步会给出错误,说Table Not Found:my_rdd

val my_df = sqlContext.sql("SELECT * from my_rdd limit 5")
Run Code Online (Sandbox Code Playgroud)

Spark的相当新手.不明白为什么会这样.任何人都可以帮我解决这个问题吗?

java.lang.RuntimeException: Table Not Found: my_rdd
    at scala.sys.package$.error(package.scala:27)
    at org.apache.spark.sql.catalyst.analysis.SimpleCatalog$$anonfun$1.apply(Catalog.scala:111)
    at org.apache.spark.sql.catalyst.analysis.SimpleCatalog$$anonfun$1.apply(Catalog.scala:111)
    at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
    at scala.collection.AbstractMap.getOrElse(Map.scala:58)
    at org.apache.spark.sql.catalyst.analysis.SimpleCatalog.lookupRelation(Catalog.scala:111)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$.getTable(Analyzer.scala:175)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$$anonfun$apply$6.applyOrElse(Analyzer.scala:187)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$$anonfun$apply$6.applyOrElse(Analyzer.scala:182)
    at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$3.apply(TreeNode.scala:187)
    at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$3.apply(TreeNode.scala:187)
    at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:50)
    at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:186)
    at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$4.apply(TreeNode.scala:207)
    at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
    at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:103)
    at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:47)
    at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:273)
    at scala.collection.AbstractIterator.to(Iterator.scala:1157)
    at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:265)
    at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1157)
    at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:252)
    at …
Run Code Online (Sandbox Code Playgroud)

sql scala cassandra apache-spark

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

git提供程序错误中不支持的URL协议

我有两个独立的PC连接到相同的Gitlab仓库.两者都运行Visual Studio Update 3并使用Team Explorer和Git.在一台PC上,我没有问题更新项目,然后将提交推送到远程仓库.然而,在另一台PC上,任何操作(推送或获取或同步)都会因Unsupported URL protocol错误而失败,尽管最初我设法克隆了回购.我怀疑它不喜欢连接字符串中的某些东西,因为我可以使用命令行git(版本2.9.2,因此相当近)提交和同步repo.导致此错误的原因是什么?是否有解决方法?

git github gitlab visual-studio-2015

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

编译时的弃用警告:eta扩展零参数方法

编译此代码段时,scala编译器会发出以下警告:

不推荐使用零参数方法值的Eta扩展.你打算写Main.this.porFiles5()吗?[warn] timerFunc(porFiles5)

当我将函数传递给另一个函数进行简单计时时,就会发生这种情况.定时器功能采用无参数功能返回单元,在此行:timerFunc(porFiles5).这个警告是否必要?什么是避免它的惯用方法?

package example
import java.nio.file._
import scala.collection.JavaConverters._
import java.time._
import scala.collection.immutable._

object Main extends App {

  val dir = FileSystems.getDefault.getPath("C:\\tmp\\testExtract")

  def timerFunc (func:()=>Unit ) = {
    val start = System.currentTimeMillis()
    timeNow()
    func()
    val finish = System.currentTimeMillis()
    timeNow()
    println((finish - start) / 1000.0 + " secs.")
    println("==================")
  }

  def porFiles5(): Unit = {
    val porFiles5 = Files.walk(dir).count()
    println(s"You have $porFiles5 por5 files.")
  }

  def timeNow(): Unit = {
    println(LocalTime.now)
  }

  timeNow()
  timerFunc(porFiles5)
  timeNow()

}
Run Code Online (Sandbox Code Playgroud)

scala

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

如何在Digital Ocean的云配置文件中设置系统范围的环境变量

我对设置远程服务器很陌生,但我今天玩得很开心,希望我可以在设置时利用云配置文件,以便在服务器启动时设置一些环境变量。

在 Digital Ocean 上启动机器时,如何以编程方式设置环境变量?关键是我想自动化设置并避免以交互方式定义这些变量。

提前致谢。

environment-variables digital-ocean

7
推荐指数
2
解决办法
7018
查看次数

是否有将一系列管道转换为功能组合的分步过程?

是否有将多个管道转换为功能组合的分步过程?

旁注: 我是否在正确的背景下使用"功能组合"一词?

我有以下代码:

let purchase qty inventory =
    buyFrom inventory qty |> fromInventory
                          |> reduceBy qty
Run Code Online (Sandbox Code Playgroud)

我想重构这段代码以支持功能组合.

所以我想我可以这样做:

let purchase qty inventory =
    buyFrom inventory >> fromInventory >> reduceBy qty
Run Code Online (Sandbox Code Playgroud)

这段代码编译.但是,当尝试在调试器中调用购买函数时,我似乎错过了一个参数.

这是我对该功能的测试:

[<Test>]
let ``buy last product``() =
    [SomeProduct] |> purchase 1
                  |> should equal []
Run Code Online (Sandbox Code Playgroud)

注意:

我仍在努力解决FP基础问题,但仍然不了解将管道工作流转换为功能组合的过程.

我想我明白功能组合依赖于部分应用程序,我认为我现在已经处理好了.因此,我有理由相信我的重构函数缺少一个参数.

关于工作流程的任何指导我可以用来更好地进行功能组合?

附录:

type Product =
    | SomeProduct

type TransactionResult = { Price:decimal; Inventory:Product list }

(* Functions *)

let priceOf qty product =
    match product with
    | SomeProduct -> match …
Run Code Online (Sandbox Code Playgroud)

f# functional-programming

7
推荐指数
2
解决办法
133
查看次数

当可见性发生变化时,IFrame滚动条会在Chrome上消失

Windows上的Google Chrome浏览器是否存在渲染iframe滚动条的问题?

我写了一个非常简单的代码来显示正在发生的事情(至少我在chrome 52.0.2743.82 m上):

  <button>Toggle visibility</button>
  <br />
  <iframe scrolling="yes" seamless src="https://en.wikipedia.org/wiki/Lorem_ipsum" frameborder="0" style="width: 700px; height: 300px"></iframe>

  <script type="text/javascript">
    $("button").on("click", function() {
      $("iframe").toggle();
    });
  </script>
Run Code Online (Sandbox Code Playgroud)

Plunker链接到代码

加载页面时,可以看到iframe作为滚动条.

隐藏并显示iframe单击按钮.滚动条消失.

这个问题显然只发生在chrome中.

有人也在经历这个吗?任何修复/解决方法?

html javascript iframe google-chrome scrollbar

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

使用Mono的VSCode Interactive语法高亮显示?

Visual Studio代码中的F#interactive(带有Ionide)在Windows 10上默认具有语法高亮.我刚刚安装了一个Linux发行版,而VSCode + Ionide在交互式终端中没有显示语法高亮.

知道如何配置吗?这就是它现在的样子:

没有语法高亮示例

f# syntax-highlighting f#-interactive visual-studio-code ionide

7
推荐指数
0
解决办法
112
查看次数

如何从VS Code启动F#控制台应用程序

给出一个简单的F#控制台应用:

[<EntryPoint>]
let main argv =
    printfn "Hello  world"
    Console.ReadLine() |>  ignore
    0
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能以与ctrl F5在Visual Studio中相同的方式启动控制台应用程序.我尝试使用Fake.ProcessHelper从FAKE构建脚本运行它:

Target "Run" (fun _ ->     

        let exe = @"C:\Source\code\fs_console_app\build\fs_console_app.exe"
        let errorCode = Shell.AsyncExec(exe, "", buildDir)
        ()    
    )
Run Code Online (Sandbox Code Playgroud)

点击Ctrl F5我收到以下构建报告:

Target     Duration
------     --------
Build      00:00:00.3916039
Run        00:00:00.0743197
Total:     00:00:00.5605493
Status:    Ok
Run Code Online (Sandbox Code Playgroud)

但没有控制台应用程序启动和等待输入的迹象.

f# f#-fake visual-studio-code ionide

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

Intellisense不适用于VSCode中具有Ionide的封装

我刚刚开始使用FSharp,我正在尝试在我的Mac上使用VSCode.我已按照所有安装说明进行操作https://github.com/dotnet/netcorecli-fsc/wiki/.NET-Core-SDK-1.0.1

然而,Inoide似乎无法拿起我添加的任何套餐.这是一个例子:

错误的屏幕截图

你可以看到插件运行正常,因为我得到类型信息,但它不会拿起包.徘徊在红色波浪形上显示错误The namespace of module 'FsUnit' is not defined

我正在运行dotnetcore 1.0.3和inoide-fsharp 2.25.10

f# .net-core visual-studio-code ionide

6
推荐指数
0
解决办法
341
查看次数