In this exercise, we ask you to guess the results of the expressions by mentally simulating the execution of expressions.
Examine the following expressions. What is the value returned by the execution of the following expression?
| anArray |
anArray := #('first' 'second' 'third' 'fourth').
anArray at: 2Solution.
'second'#(2 3 -10 3) collect: [ :each | each * each]Solution.
#(4 9 100 9)6 + 4 / 2Solution.
51 + 3 negatedSolution.
-21 + (3 negated)Solution.
-22 raisedTo: 3 + 2Solution.
322 negated raisedTo: 3 + 2Solution.
-32#(a b c d e f) includesAll: #(f d b)Solution.
truePutting more parentheses than necessary is a good way to get started. Such practice however leads to less readable expressions. Rewrite the following expressions using the least number of parentheses.
((3 + 4) + (2 * 2) + (2 * 3))Solution.
3 + 4 + (2 * 2) + (2 * 3) x between: (pt1 x) and: (pt2 y)Solution.
x between: pt1 x and: pt2 y (x isZero)
ifTrue: [....]
(x includes: y)
ifTrue: [....]Solution.
x isZero
ifTrue: [....]
(x includes: y)
ifTrue: [....] (Integer primesUpTo: 64) sumSolution.
(Integer primesUpTo: 64) sum (OrderedCollection new)
add: 56;
add: 33;
yourselfSolution.
OrderedCollection new
add: 56;
add: 33;
yourself ('http://www.pharo.org' asUrl) retrieveContentsSolution.
('http://www.pharo.org' asUrl) retrieveContents (('2014-07-01' asDate) - '2013/2/1' asDate) daysSolution.
('2014-07-01' asDate - '2013/2/1' asDate) days (((ZnEasy getPng: 'http://pharo.org/web/files/pharo.png')
asMorph) openInWindow)Solution.
(ZnEasy getPng: 'http://pharo.org/web/files/pharo.png')
asMorph openInWindow ((#(a b c d e f) asSet) intersection: (#(f d b) asSet))Solution.
#(a b c d e f) asSet intersection: #(f d b) asSetExamine each of the following expression and write down the sequence of steps of their execution (which message is executed first and so on).
Date today daysInMonthSolution.
Date today daysInMonth
today
daysInMonth 5@5 extent: 6.2 truncated @ 7Solution.
5@5 extent: 6.2 truncated @ 7
6.2 truncated
5@5
6@7
extent: Transcript show: (45 + 9) printStringSolution.
Transcript show: (45 + 9) printString
(45 + 9)
printString
show: ('2014-07-01' asDate - '2013/2/1' asDate) daysSolution.
('2014-07-01' asDate - '2013/2/1' asDate) days
asDate
asDate
-
days 42 factorial decimalDigitLengthSolution.
42 factorial decimalDigitLength
factorial
decimalDigitLength (ZnServer startDefaultOn: 8080)
onRequestRespond: [ :request | ZnResponse ok: (ZnEntity with: DateAndTime now printString) ]Solution.
(ZnServer startDefaultOn: 8080)
onRequestRespond: [ :request | ZnResponse ok: (ZnEntity with: DateAndTime now printString) ]
startDefaultOn:
onRequestRespond:
now
printString
with:
ok: (1914 to: 1945) count: [ :each | Year isLeapYear: each ].Solution.
(1914 to: 1945) count: [ :each | Year isLeapYear: each ].
to:
count:
isLeapYear: $/ join: ($- split: '1969-07-20') reverseSolution.
$/ join: ($- split: '1969-07-20') reverse
split:
reverse
join: DateAndTime fromUnixTime:
((ByteArray readHexFrom: 'CAFEBABE4422334400FF')
copyFrom: 5 to: 8) asIntegerSolution.
DateAndTime fromUnixTime:
((ByteArray readHexFrom: 'CAFEBABE4422334400FF')
copyFrom: 5 to: 8) asInteger
readHexFrom:
copyFrom:to:
asInteger
fromUnixTime: (String new: 32) collect: [ :each | 'abcdef' atRandom ]Solution.
(String new: 32) collect: [ :each | 'abcdef' atRandom ]
new:
collect:
atRandom 'http://www.pharo.org' asUrl saveContentsToFile: 'page.html'Solution.
'http://www.pharo.org' asUrl saveContentsToFile: 'page.html'
asUrl
saveContentsToFile:'^.*.jpg' asRegex in: [ :regex |
'/tmp/foo.txt' asFileReference contents lines
select: [ :line | regex matches: line ] ]Solution.
'^.*.jpg' asRegex in: [ :regex |
'/tmp/foo.txt' asFileReference contents lines
select: [ :line | regex matches: line ] ]
asRegex
asFielReference
contents
line
matches: