On Wed, Jan 26, 2022, 01:20 Kasper Osterbye <kasper.oster...@gmail.com> wrote:
> Cheers all > > I have noticed that I often ends up with quite a number of nested > expressions, for example: > > (((json at: 'tree') > select: [ :e | (e at: 'type') = ‘blob' ]) > collect: [:e | Path from: (e at: 'path')]) > select: [ :p | p segments last > in: [ :name | (name endsWith: '.md') | > (name endsWith: '.mic') ] ] > > What kind of proposals (if any) have been for a different syntax which > could give a more streamlined syntax? > What's written is basically unreadable and syntax changes won't help. Try taking out the constants and describing their relationship with a new message or a couple of messages. Without trying to understand it, it looks like you have some navigation followed by some filtering / suffix selection. Try to develop an expression that articulates the meaning of what you're doing. > My own thinking has been around an alternative to the cascade semicolon. > What symbol to use does not matter for me, but something like > json at: ‘tree' º > select: [ :e | ((e at: 'type') = 'blob’)]º > collect: [:e | Path from: (e at: 'path’)]º > select: [ :p | p segments last > in: [ :name | (name endsWith: '.md') | (name endsWith: > '.mic') ] ] > > Basically, a send the right hand expression to the result of the left hand > expression. > > Has anyone ever tried this, or is it just one of the many small annoyances > best left alone? > > Best, > > Kasper