🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉
Avatar of kellydanma

kellydanma's solution

to Hello World in the Crystal Track

Published at Apr 11 2021 · 0 comments
Test suite

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

  • src contains your solution to the exercise
  • spec contains the tests to run for the exercise

Running Tests

If you're in the right directory (i.e. the one containing src and spec), you can run the tests for that exercise by running crystal spec:

$ pwd

$ ls
GETTING_STARTED.md README.md          spec               src

$ crystal spec

This will run all of the test files in the spec directory.

In each test file, all but the first test have been skipped.

Once you get a test passing, you can unskip the next one by changing pending to it.

Submitting Your Solution

Be sure to submit the source file in the src directory when submitting your solution:

$ exercism submit src/hello_world.cr


Follow the setup instructions for Crystal here:


More help installing can be found here:


Making the Test Suite Pass

Execute the tests with:

$ crystal spec

In each test suite all but the first test have been skipped.

Once you get a test passing, you can unskip the next one by changing pending to it.


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.


require "spec"
require "../src/*"

describe "HelloWorld" do
  it "Say Hi!" do
    HelloWorld.hello.should eq("Hello, World!")
class HelloWorld
  def self.hello
    "Hello, World!"

Community comments

Find this solution interesting? Ask the author a question to learn more.

What can you learn from this solution?

A huge amount can be learned 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 you could read more about to improve your understanding?