Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中部分应用的isBefore函数给出错误_Scala - Fatal编程技术网

Scala中部分应用的isBefore函数给出错误

Scala中部分应用的isBefore函数给出错误,scala,Scala,我正在尝试在Scala中合并两个日期序列,以便合并后的序列具有排序元素。我正在使用isBefore的部分实现,如下所示: val seq1 = Seq(LocalDate.of(2014, 4, 5), LocalDate.of(2013, 6 ,7), LocalDate.of(2014, 3, 1)) val seq2 = Seq(LocalDate.of(2012, 2, 2), LocalDate.of(2015, 2, 1)) var arr = (seq1 ++ seq2

我正在尝试在Scala中合并两个日期序列,以便合并后的序列具有排序元素。我正在使用isBefore的部分实现,如下所示:

  val seq1 = Seq(LocalDate.of(2014, 4, 5), LocalDate.of(2013, 6 ,7), LocalDate.of(2014, 3, 1))
  val seq2 = Seq(LocalDate.of(2012, 2, 2), LocalDate.of(2015, 2, 1))
  var arr = (seq1 ++ seq2).sortWith(_.isBefore(_) = 1)
  println(arr)
但它显示isBefore函数的编译错误:

 Multiple markers at this line
- missing arguments for method isBefore in class LocalDate; follow this method with `_' if you want to 
 treat it as a partially applied function
- missing arguments for method isBefore in class LocalDate; follow this method with `_' if you want to 
 treat it as a partially applied function

我对Scala比较陌生。问题似乎出在哪里?

起初没有“部分实现”这样的术语,至少我没听说过,我猜你指的是“部分应用”,但在这种情况下,没有“部分应用”,部分应用是关于curried函数的,编译器试图在错误消息中告诉你什么。例如:

def test(a: String)(f: String => String) = f(a)

val onString = test("hello world") _

onString(_.capitalize)

test: (a: String)(f: String => String)String
onString: (String => String) => String = <function1>
res8: String = Hello world
val seq1 = Seq(LocalDate.parse("2014-04-05"), LocalDate.parse("2013-06-07"), LocalDate.parse("2014-03-01"))
val seq2 = Seq(LocalDate.parse("2012-02-02"), LocalDate.parse("2015-02-01"))
var arr = (seq1 ++ seq2).sortWith(_.isBefore(_))

arr: Seq[org.joda.time.LocalDate] = List(2012-02-02, 2013-06-07, 2014-03-01, 2014-04-05, 2015-02-01)