I do not get why (Yes I know it is because it is not in the syntax.... but it is conceptually not nice). | d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1. is not an expression in Pharo. It means that I can manipulate 1 + 3, x + 3 as an expression but not a sequence. So it forces me to use a block to convert artificially a sequence in an expression. [ | d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1. ] value So if I want to build a repl executing expression then this is not a Pharo repl but just a stupid expression. I would like to know what would be impact to have sequence and declaration as expression. Stef
Surprising that a sequence is not an expression. I'm pretty sure that (1+2. 2+3) is an expression that returns 5 (after computing a useless addition). What is currently not an expression is the variable declaration, indeed. But if we make |d| an expression then that means we can declare variables in the middle of a sequence⦠so it would still have the same lifetime, but a shorter scope ? On 30 June 2017 at 11:32, Stephane Ducasse <stepharo.self@gmail.com> wrote:
I do not get why (Yes I know it is because it is not in the syntax.... but it is conceptually not nice).
| d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1.
is not an expression in Pharo.
It means that I can manipulate
1 + 3, x + 3 as an expression but not a sequence.
So it forces me to use a block to convert artificially a sequence in an expression.
[ | d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1. ] value
So if I want to build a repl executing expression then this is not a Pharo repl but just a stupid expression.
I would like to know what would be impact to have sequence and declaration as expression.
Stef
-- Damien Pollet type less, do more [ | ] http://people.untyped.org/damien.pollet
Ok. Then we can have an ordered expression :) A sequence without a declaration is a bit useless. On Fri, Jun 30, 2017 at 11:56 AM, Damien Pollet <damien.pollet@gmail.com> wrote:
Surprising that a sequence is not an expression. I'm pretty sure that (1+2. 2+3) is an expression that returns 5 (after computing a useless addition). What is currently not an expression is the variable declaration, indeed. But if we make |d| an expression then that means we can declare variables in the middle of a sequence⦠so it would still have the same lifetime, but a shorter scope ?
On 30 June 2017 at 11:32, Stephane Ducasse <stepharo.self@gmail.com> wrote:
I do not get why (Yes I know it is because it is not in the syntax.... but it is conceptually not nice).
| d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1.
is not an expression in Pharo.
It means that I can manipulate
1 + 3, x + 3 as an expression but not a sequence.
So it forces me to use a block to convert artificially a sequence in an expression.
[ | d | d := Dictionary new. d at: #top at: #below1 put: 1. d at: #top at: #below1 put: 2. d at: #top at: #below1. ] value
So if I want to build a repl executing expression then this is not a Pharo repl but just a stupid expression.
I would like to know what would be impact to have sequence and declaration as expression.
Stef
-- Damien Pollet type less, do more [ | ] http://people.untyped.org/damien.pollet
participants (2)
-
Damien Pollet -
Stephane Ducasse