I wasn't very far ^^ here is the function:

location : Int -> Int -> ( Int, Int ) -> ( Int, Int ) -> Maybe ( Int, Int )
location bufferIndex offset ( str1, str2 ) ( height, width ) =
    let
        unOffset =
            bufferIndex - offset

        ( line, lineRest ) =
            ( unOffset // str1
            , unOffset % str1
            )

        ( column, columnRest ) =
            ( lineRest // str2
            , lineRest % str2
            )

        locationOk =
            line < height && column < width && columnRest == 0
    in
    if locationOk then
        Just ( line, column )
    else
        Nothing

You can easily verify your example by putting it in a file, and in elm-repl:

import TheFile
import List

List.range 0 8 |> List.map (\id -> TheFile.location id 0 (6,2) (2,2))

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to