diff --git a/core/src/main/java/fj/data/List.java b/core/src/main/java/fj/data/List.java index fc993523..2136eb3a 100644 --- a/core/src/main/java/fj/data/List.java +++ b/core/src/main/java/fj/data/List.java @@ -1152,7 +1152,7 @@ public final List init() { List ys = this; final Buffer a = empty(); while(ys.isNotEmpty() && ys.tail().isNotEmpty()) { - a.snoc(head()); + a.snoc(ys.head()); ys = ys.tail(); } return a.toList(); diff --git a/tests/src/test/scala/fj/data/CheckList.scala b/tests/src/test/scala/fj/data/CheckList.scala index f00bae1a..3692fa9c 100644 --- a/tests/src/test/scala/fj/data/CheckList.scala +++ b/tests/src/test/scala/fj/data/CheckList.scala @@ -174,6 +174,9 @@ object CheckList extends Properties("List") { property("nub") = forAll((a: List[String], b: List[String]) => listEqual(stringEqual).eq(a append b nub, a.nub.append(b.nub).nub)) + property("init") = forAll((a: List[String], b: String) => + listEqual(stringEqual).eq(a.snoc(b).init(), a)) + property("join") = forAll((a: List[List[String]]) => listEqual(stringEqual).eq( a.foldRight((a: List[String], b: List[String]) => a.append(b), nil[String]),