Longest common prefix: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Scala}}: Added zkl) |
||
Line 34: | Line 34: | ||
(list.min.view,list.max.view).zipped.takeWhile(v => v._1 == v._2).unzip._1.mkString) |
(list.min.view,list.max.view).zipped.takeWhile(v => v._1 == v._2).unzip._1.mkString) |
||
}</lang> |
}</lang> |
||
=={{header|zkl}}== |
|||
The string method prefix returns the number of common prefix characters. |
|||
<lang zkl>fcn lcp(s,strings){ s[0,s.prefix(vm.pasteArgs(1))] }</lang> |
|||
<lang zkl>tester:=TheVault.Test.UnitTester.UnitTester(); |
|||
tester.testRun(lcp.fp("interspecies","interstelar","interstate"),Void,"inters",__LINE__); |
|||
tester.testRun(lcp.fp("throne","throne"),Void,"throne",__LINE__); |
|||
tester.testRun(lcp.fp("throne","dungeon"),Void,"",__LINE__); |
|||
tester.testRun(lcp.fp("cheese"),Void,"cheese",__LINE__); |
|||
tester.testRun(lcp.fp(""),Void,"",__LINE__); |
|||
tester.testRun(lcp.fp("prefix","suffix"),Void,"",__LINE__); |
|||
tester.stats();</lang> |
|||
The fp (partial application) method is used to delay running lcp until the tester actually tests. |
|||
{{out}} |
|||
<pre> |
|||
===================== Unit Test 1 ===================== |
|||
Test 1 passed! |
|||
===================== Unit Test 2 ===================== |
|||
Test 2 passed! |
|||
===================== Unit Test 3 ===================== |
|||
Test 3 passed! |
|||
===================== Unit Test 4 ===================== |
|||
Test 4 passed! |
|||
===================== Unit Test 5 ===================== |
|||
Test 5 passed! |
|||
===================== Unit Test 6 ===================== |
|||
Test 6 passed! |
|||
6 tests completed. |
|||
Passed test(s): 6 (of 6) |
|||
</pre> |