Here is a somewhat painful record update:

setImage : String -> String -> Image -> Model -> Model
setImage tool url image model =
    let
        mapping =
            case tool of
                "rectangle" ->
                    .rectangle model.resourcesMapping

                "outline" ->
                    .outline model.resourcesMapping

                "scribbles" ->
                    .scribbles model.resourcesMapping

                _ ->
                    Dict.empty

        id =
            Dict.get url mapping
                |> Maybe.withDefault -1

        config =
            model.config

        newConfig =
            case tool of
                "rectangle" ->
                    { config | rectangle = Dict.insert id (NoGT url image) 
config.rectangle }

                "outline" ->
                    { config | outline = Dict.insert id (NoGT url image) 
config.outline }

                "scribbles" ->
                    { config | scribbles = Dict.insert id (NoGT url image) 
config.scribbles }

                _ ->
                    config
    in
        { model | config = newConfig }


On Friday, March 3, 2017 at 2:12:39 PM UTC+8, Richard Feldman wrote:
>
> There have been various discussions of potential ways to improve Elm's 
> record update syntax. Evan commented that "(examples > design work) at this 
> point" - any potential designs for syntax improvements would need to be run 
> through a gauntlet of examples to see how well they'd work, so the first 
> step in the process is to gather those examples.
>
> So let's collect a ton of different real-world examples! That will help 
> guide the design process.
>
> If you've run into a record update that you felt was painful and could be 
> improved in some way, please post it here! (Also, *please keep this 
> thread for posting of examples* *only* - it'll be easier to link back 
> here during design discussions if we can reference a clean thread of 
> examples, as opposed to a mismash of examples interleaved with suggestions.)
>

-- 
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