# JavaScript To ELM conversion

**URL:** <https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526>\
**Category:** Learn\
**Created:** [July 6, 2021, 3:59pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526 "2021-07-06T15:59:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zack\_slm](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/zack_slm/32/4166_2.png) [@Zack\_slm](https://discourse.elm-lang.org/u/Zack_slm)\
**Post date:** [July 6, 2021, 3:59pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526/1 "2021-07-06T15:59:45Z")

</div>

Hello, I start learning ELM and i need help with syntax.  
I write this javascript code and i want to convert it to ELM lang.  
can anyone help me with that please

function computeNextValue (x){  
list = numberToArray(x);  
sum = add(list);  
let y = x + sum;  
return y;  
}

function numberToArray(number) {  
let array = number.toString().split("");//stringify the number, then make each digit an item in an array  
return array.map(x =\> parseInt(x));//convert all the items back into numbers  
}

function add(list){  
let sum = 0;  
for (var i = 0; i \< list.length; i++) {  
interm = parseInt(list[i]);  
sum += interm;  
}  
return(sum);  
}

---

<div class="post-metadata">

**Author:** ![Atlewee](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/atlewee/32/4603_2.png) [@Atlewee](https://discourse.elm-lang.org/u/Atlewee)\
**Post date:** [July 6, 2021, 5:32pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526/2 "2021-07-06T17:32:31Z")

</div>

```elm
computeNextValue : Int -> Int
computeNextValue x =
    let
        list =
            numberToArray x

        sum =
            List.foldl (+) 0 list
    in
    x + sum

numberToArray : Int -> List Int
numberToArray number =
    number
        |> String.fromInt
        |> String.split ""
        |> List.map (String.toInt >> Maybe.withDefault 0)

```

I guess something like this when trying to convert directly from js…  
If I interpreted the functions correctly that is 🙂  
Here is a working ellie : [https://ellie-app.com/dFzcGpMPWnKa1](https://ellie-app.com/dFzcGpMPWnKa1)

---

<div class="post-metadata">

**Author:** ![wolfadex](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/wolfadex/32/2461_2.png) [@wolfadex](https://discourse.elm-lang.org/u/wolfadex)\
**Post date:** [July 6, 2021, 5:32pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526/3 "2021-07-06T17:32:57Z")

</div>

```elm
computeNextValue : Int -> Int
computeNextValue x =
   List.sum (numberToList x) + x

numberToList : Int -> List Int
numberToList number =
    String.fromInt number -- convert our Int to a String
        |> String.split ""
        |> List.filterMap String.toInt -- String.toInt returns a Maybe Int so we use List.filterMap to filter out the Nothing cases, which should be none in this instance

```

This would do what you want. If you wanted to write `add` yourself you could do it as

```elm
add : List Int -> Int
add nums =
    List.foldl (\n sum -> n + sum) 0 nums

```

---

<div class="post-metadata">

**Author:** ![Zack\_slm](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/zack_slm/32/4166_2.png) [@Zack\_slm](https://discourse.elm-lang.org/u/Zack_slm)\
**Post date:** [July 6, 2021, 11:17pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526/4 "2021-07-06T23:17:49Z")

</div>

thank you for your help !

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [July 16, 2021, 11:17pm UTC](https://discourse.elm-lang.org/t/javascript-to-elm-conversion/7526/5 "2021-07-16T23:17:54Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
