- JavaScript
- Haskell
- Ruby
- CoffeeScript
- C#
- Python
- Crystal
- Java
- Rust
- C
- Factor (Beta)
- Scala
- Groovy
- PHP
- TypeScript
- Elixir
- Nim (Beta)
- Go
- COBOL (Beta)
- C++
- F#
- Julia (Beta)
- PowerShell (Beta)
- D (Beta)
- Dart
- VB (Beta)
- Kotlin
- Lua
- Clojure
- Shell
- OCaml (Beta)
- R (Beta)
- Reason (Beta)
- Racket
- Pascal (Beta)
- Perl (Beta)
- Erlang (Beta)
- Swift
- NASM
Start training on this collection. Each time you skip or complete a kata you will be taken to the next kata in the series. Once you cycle through the items in the collection you will revert back to your normal training routine.
DescriptionEdit
Remove the append function (++
) from existing solutions by replacing it with generalizations, or something else, to avoid traversing the list multiple times.
Reference:
Algorithms: A Functional Programming Approach, Fethi A. Rabhi and Guy Lapalme, 1999, Addison Wesley: p 75-76.