I agree with everything said, however there's a specific case where I personally try to avoid `let` if possible.
Sometimes view functions can be quite big, hence it makes sense to split them into smaller composable functions. So far so good, but as soon as we introduce the `let ... in` block, the diff will be worthless (as pointed in the style guide <http://elm-lang.org/docs/style-guide>, producing clean diffs is one of the goals). So in these cases I think it's best to add new functions at the bottom instead. As an example, instead of: view model = let viewFoo = ... viewBar = ... viewBaz = ... in div [] [ viewFoo , viewBar , viewBaz ] I'd rather go for: view model = div [] [ viewFoo model , viewBar model , viewBaz model ] viewFoo model = ... viewBar model = ... viewBaz model = ... However this is just my opinion and I don't feel like I have to strictly follow this convention. It may depend from case to case and having a dirty diff doesn't really matter in the end. On Tuesday, 4 October 2016 21:04:31 UTC+1, Andrew Radford wrote: > > I've been trying out Elm, and although I have a little functional > programming experience from F#, mostly I have used OO languages. With my > experiments in Elm, I have found sometimes I end up with something like this > > foofunction model = > let > something = foo bar baz > somethingElse = foo bar baz > yetMoreStuff = foo qux thud > in > { model > | fieldA = something > , fieldB = somethingElse > , fieldC = yetMoreStuff > } > > > ... anyway I hope you get the idea. A style of function which lot of lines > in the 'let' block before generally one final thing in the 'in' block. In > F#, this sort of thing didn't look so bad as the stuff in the let block > would be all applied with individual 'let' functions. However in Elm they > start to *resemble *OO/imperitive style variable assignments, which makes > me question whether this is the Right Thing to do, or would it be > considered stylistically better to do something else, like for eg chain the > model through individual updating functions using '|>'. Any strong > opinions about this? Have not seen too much about it in the style guides > etc that I have encountered > > Andrew > > > -- 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.
