Avatar of shmibs

shmibs's solution

to Hello World in the Vim script Track

Published at Nov 27 2018 · 0 comments
Test suite


This exercise has changed since this solution was written.

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.

How to run the tests

If you don't know how to run Vader tests, see: Tests.

For general information about the Vim script track, see: Help.


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.


Execute (says hello using default argument):
  AssertEqual "Hello, World!", Hello()

Execute (says hello using name "Bram"):
  AssertEqual "Hello, Bram!", Hello('Bram')

Execute (says hello using name "Bill Joy"):
  AssertEqual "Hello, Bill Joy!", Hello('Bill Joy')
" Greet someone or something!
" If no argument is given, return 'Hello, World!'.
" If the optional argument is given, greet that name instead.
" Hint: If you're confused by the first line in the function,
"       read `:help a:0`.
"       It also uses the short if-then-else syntax which is
"       called ternary operator in other languages:
"          condition ? true : false
function! Hello(...) abort
	return 'Hello, ' . (a:0 >= 1 ? a:1 . '!' : '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?