Problem 3

Implement the function elementAt to return the n-th element of a list. The index is 1-relative, that is, the first element is at index 1.

Example:

elementAt [3, 4, 5, 6] 2 == Just 4

Unit Test

import Html
import List
import Maybe


elementAt : List a -> Int -> Maybe a
elementAt xs n =
    -- your implementation here
    Nothing


main : Html.Html a
main =
    Html.text
        <| case test of
            0 ->
                "Your implementation passed all tests."

            1 ->
                "Your implementation failed one test."

            x ->
                "Your implementation failed " ++ (toString x) ++ " tests."


test : Int
test =
    List.length
        <| List.filter ((==) False)
            [ elementAt [1, 2, 3, 4] 2 == Just 2
            , elementAt [ 1 ] 2 == Nothing
            , elementAt [] 2 == Nothing
            , elementAt [] (-1) == Nothing
            , elementAt [ 'a', 'b', 'c' ] 2 == Just 'b'
            ]

Hints

  1. Use recursion.
  2. Use List.drop.

Solutions

Solutions

results matching ""

    No results matching ""