Abstract List's toString method to a more general join method on Sequence.

This commit is contained in:
Gavin Schulz
2015-01-24 14:01:16 -08:00
parent c3a858a2c7
commit 4977083904
9 changed files with 76 additions and 18 deletions
+23
View File
@@ -0,0 +1,23 @@
// Handle empty list.
IO.print([].join(",") == "") // expect: true
// Handle a simple list with an empty delimeter.
IO.print([1, 2, 3].join("")) // expect: 123
// Handle a simple list with no separator.
IO.print([1, 2, 3].join) // expect: 123
// Does not quote strings.
IO.print([1, "2", true].join(",")) // expect: 1,2,true
// Nested lists.
IO.print([1, [2, [3], 4], 5].join(",")) // expect: 1,[2, [3], 4],5
// Calls toString on elements.
class Foo {
toString { "Foo.toString" }
}
IO.print([1, new Foo, 2].join(", ")) // expect: 1, Foo.toString, 2
// TODO: Handle lists that contain themselves.
+1
View File
@@ -0,0 +1 @@
[1, 2, 3].join(2) // expect runtime error: Right operand must be a string.