Just a commit
This commit is contained in:
25
elm/hello-world/HelloWorld.elm
Normal file
25
elm/hello-world/HelloWorld.elm
Normal file
@@ -0,0 +1,25 @@
|
||||
{-
|
||||
This is a "stub" file. It's a little start on your solution. It's not a
|
||||
complete solution though; you have to write some code.
|
||||
|
||||
The module name is expected by the test program and must match the name of this
|
||||
file. It has to stay just the way it is.
|
||||
-}
|
||||
|
||||
|
||||
module HelloWorld exposing (..)
|
||||
|
||||
-- It's good style to include any types at the top level of your modules.
|
||||
|
||||
|
||||
helloWorld : Maybe String -> String
|
||||
helloWorld name =
|
||||
"replace with your code!"
|
||||
|
||||
|
||||
|
||||
{-
|
||||
When you have a working solution, REMOVE ALL THE STOCK COMMENTS.
|
||||
They're here to help you get started but they only clutter a finished solution.
|
||||
If you leave them in, nitpickers will protest!
|
||||
-}
|
18
elm/hello-world/HelloWorldTests.elm
Normal file
18
elm/hello-world/HelloWorldTests.elm
Normal file
@@ -0,0 +1,18 @@
|
||||
module Main exposing (..)
|
||||
|
||||
import ElmTest exposing (..)
|
||||
import HelloWorld exposing (helloWorld)
|
||||
|
||||
|
||||
tests : Test
|
||||
tests =
|
||||
suite "Hello, World!"
|
||||
[ test "Hello with no name" (assertEqual "Hello, World!" (helloWorld Nothing))
|
||||
, test "Hello to a sample name" (assertEqual "Hello, Alice!" (helloWorld (Just "Alice")))
|
||||
, test "Hello to another sample name" (assertEqual "Hello, Bob!" (helloWorld (Just "Bob")))
|
||||
]
|
||||
|
||||
|
||||
main : Program Never
|
||||
main =
|
||||
runSuite tests
|
48
elm/hello-world/README.md
Normal file
48
elm/hello-world/README.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Hello World
|
||||
|
||||
Write a function that greets the user by name, or by saying "Hello, World!" if no name is given.
|
||||
|
||||
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is the traditional first program for beginning programming in a new language.
|
||||
|
||||
**Note:** You can skip this exercise by running:
|
||||
|
||||
exercism skip $LANGUAGE hello-world
|
||||
|
||||
## Specification
|
||||
|
||||
Write a `Hello World!` function that can greet someone given their name.
|
||||
The function should return the appropriate greeting.
|
||||
|
||||
For an input of "Alice", the response should be "Hello, Alice!".
|
||||
|
||||
If a name is not given, the response should be "Hello, World!"
|
||||
|
||||
## Test-Driven Development
|
||||
|
||||
As programmers mature, they eventually want to test their code.
|
||||
|
||||
Here at Exercism we simulate [Test-Driven Development](http://en.wikipedia.org/wiki/Test-driven_development) (TDD), where you write your tests before writing any functionality. The simulation comes in the form of a pre-written test suite, which will signal that you have solved the problem.
|
||||
|
||||
It will also provide you with a safety net to explore other solutions without breaking the functionality.
|
||||
|
||||
### A typical TDD workflow on Exercism:
|
||||
|
||||
1. Run the test file and pick one test that's failing.
|
||||
2. Write some code to fix the test you picked.
|
||||
3. Re-run the tests to confirm the test is now passing.
|
||||
4. Repeat from step 1.
|
||||
5. Submit your solution (`exercism submit /path/to/file`)
|
||||
|
||||
## Instructions
|
||||
|
||||
Submissions are encouraged to be general, within reason. Having said that, it's also important not to over-engineer a solution.
|
||||
|
||||
It's important to remember that the goal is to make code as expressive and readable as we can. However, solutions to the hello-world exercise will not be reviewed by a person, but by rikki- the robot, who will offer an encouraging word.
|
||||
|
||||
## Source
|
||||
|
||||
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
||||
|
||||
## Submitting Incomplete Problems
|
||||
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
||||
|
15
elm/hello-world/elm-package.json
Normal file
15
elm/hello-world/elm-package.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"summary": "Exercism problems in Elm.",
|
||||
"repository": "https://github.com/exercism/xelm.git",
|
||||
"license": "BSD3",
|
||||
"source-directories": [
|
||||
"."
|
||||
],
|
||||
"exposed-modules": [],
|
||||
"dependencies": {
|
||||
"elm-community/elm-test": "1.0.0 <= v < 2.0.0",
|
||||
"elm-lang/core": "4.0.0 <= v < 5.0.0"
|
||||
},
|
||||
"elm-version": "0.17.0 <= v < 0.18.0"
|
||||
}
|
4
elm/hello-world/runtests.bat
Normal file
4
elm/hello-world/runtests.bat
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
for %%f in (*Tests.elm) do (
|
||||
elm-make %%f --yes --output build.js && node build.js
|
||||
)
|
2
elm/hello-world/runtests.sh
Normal file
2
elm/hello-world/runtests.sh
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
elm-make *Tests.elm --yes --output build.js && node build.js
|
Reference in New Issue
Block a user