Define a primitive data type: Difference between revisions

Content added Content deleted
Line 1,175: Line 1,175:
NB. create a restricted object from an appropriate integer
NB. create a restricted object from an appropriate integer
create_restrict_ =: monad define
create_restrict_ =: monad define
'Value error. expected integer on [1,10]' assert 1 0 -: 1 11 le y
'Value error. expected integer on [1,10]' assert 0 -.@e. , (1 0 -: 1 11 le ])&> y
'Value error, non integral' assert (-: <.) y
'Value error, non integral' assert (-: <.) y
value=: y
value=: <. y
)
)


Line 1,191: Line 1,191:


<pre>
<pre>
A=: 2 conew 'restrict'
A=:(>:i.2 3)conew'restrict'
value__A

1 2 3
add__A 8
4 5 6
|value unavailable: signalError
B =: 1 4 conew 'restrict'
| 'value unavailable' signalError 21

B=:6 conew'restrict'


C=: add__A B
C=: add__A B
value__C
2 3 4
8 9 10


D=: 1 conew'restrict'
value__C
add__D C
8
add__C B
|Value error. expected integer on [1,10]: assert
|Value error. expected integer on [1,10]: assert
| 'Value error. expected integer on [1,10]' assert 1 0-:1 11 le y
| 'Value error. expected integer on [1,10]' assert 0-.@e.,(1 0-:1 11 le])&>y
</pre>
</pre>