Avatar of murdho
0
0
Genius
0
0

murdho's solution

to Hello World in the Clojure Track

0
0
Genius
0
0
Instructions
Test suite
Solution

The classical introductory exercise. Just say "Hello, World!".

"Hello, World!" is the traditional first program for beginning programming in a new language or environment.

The objectives are simple:

  • Write a function that returns the string "Hello, World!".
  • Run the test suite and make sure that it succeeds.
  • Submit your solution and check it at the website.

If everything goes well, you will be ready to fetch your first real exercise.

Project Structure

Clojure exercises in exercism use leiningen to configure and run your code and use leiningen standard directory structure.

You will find a test file named hello_world_test.clj inside test directory. Write your code in src/hello_world.clj. It should use the namespace hello-world so that tests can pick it up.

Running tests

Run the tests using lein test command and make them pass:

$ lein test

lein test hello-world-test

Ran 3 tests containing 3 assertions.
0 failures, 0 errors.

Then submit the exercise using:

$ exercism submit src/hello_world.clj

For more detailed instructions and learning resources refer exercism's clojure language page.

Source

This is an exercise to introduce users to using Exercism http://en.wikipedia.org/wiki/%22Hello,_world!%22_program

Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

hello_world_test.clj

(ns hello-world-test
  (:require [clojure.test :refer [deftest is]]
            hello-world))

(deftest hello-world-test
  (is (= "Hello, World!" (hello-world/hello))))
(ns hello-world)

(defn hello
  ([] (hello "World"))
  ([name] (str "Hello, " name "!")))

What can you learn from this solution?

A huge amount can be learnt from reading other people’s code. This is why we wanted to give exercism users the option of making their solutions public.

Here are some questions to help you reflect on this solution and learn the most from it.

  • What compromises have been made?
  • Are there new concepts here that I could read more about to develop my understanding?