Materialise: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{Built-in|Materialise|⌷}} is a monadic primitive function which tries to cast the argument (which can be any object) into an APL array. If the argument is alrea...") |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Built-in|Materialise|⌷}} is a [[monadic]] [[primitive function]] which tries to cast the [[argument]] (which can be any object) into an APL array. If the argument is already an array, it is returned unmodified. It is only available in [[Dyalog APL]], which supports classes and .NET objects. Materialise shares its [[glyph]] < | {{Built-in|Materialise|⌷}} is a [[monadic]] [[primitive function]] which tries to cast the [[argument]] (which can be any object) into an APL array. If the argument is already an array, it is returned unmodified. It is only available in [[Dyalog APL]], which supports classes and .NET objects. Materialise shares its [[glyph]] <syntaxhighlight lang=apl inline>⌷</syntaxhighlight> with [[Index (function)|Index]]. | ||
== Examples == | == Examples == | ||
Line 5: | Line 5: | ||
Dyalog APL allows the user to define a class, which looks like the following: | Dyalog APL allows the user to define a class, which looks like the following: | ||
< | <syntaxhighlight lang=apl> | ||
:Class cl | :Class cl | ||
:Property Default thing | :Property Default thing | ||
Line 14: | Line 14: | ||
:EndProperty | :EndProperty | ||
:EndClass | :EndClass | ||
</ | </syntaxhighlight>{{Works in|[[Dyalog APL]]}} | ||
If one property is declared as default, Materialise returns the value of the default property. | If one property is declared as default, Materialise returns the value of the default property. | ||
< | <syntaxhighlight lang=apl> | ||
⊢cl ⍝ It is an object | ⊢cl ⍝ It is an object | ||
#.cl | #.cl | ||
Line 25: | Line 25: | ||
cl.thing ⍝ Actual effect of the line above | cl.thing ⍝ Actual effect of the line above | ||
3 1 4 1 4 | 3 1 4 1 4 | ||
</ | </syntaxhighlight>{{Works in|[[Dyalog APL]]}} | ||
Materialise can also be used on a .NET collection, which returns the underlying array of data. | Materialise can also be used on a .NET collection, which returns the underlying array of data. | ||
< | <syntaxhighlight lang=apl> | ||
ba←⎕NEW System.Collections.BitArray(⊂1 0 1 1 0) | ba←⎕NEW System.Collections.BitArray(⊂1 0 1 1 0) | ||
⍬≡⍴ba ⍝ ba itself is a scalar object | ⍬≡⍴ba ⍝ ba itself is a scalar object | ||
Line 35: | Line 35: | ||
⍴⌷ba ⍝ but it is actually a container of 5 values | ⍴⌷ba ⍝ but it is actually a container of 5 values | ||
5 | 5 | ||
</ | </syntaxhighlight>{{Works in|[[Dyalog APL]]}} | ||
Materialise is the same as [[Identity]] for APL arrays. | Materialise is the same as [[Identity]] for APL arrays. | ||
< | <syntaxhighlight lang=apl> | ||
(⌷≡⊢) 1 2 3 4 5 | (⌷≡⊢) 1 2 3 4 5 | ||
1 | 1 | ||
</ | </syntaxhighlight>{{Works in|[[Dyalog APL]]}} | ||
== External links == | == External links == |
Latest revision as of 21:51, 10 September 2022
⌷
|
Materialise (⌷
) is a monadic primitive function which tries to cast the argument (which can be any object) into an APL array. If the argument is already an array, it is returned unmodified. It is only available in Dyalog APL, which supports classes and .NET objects. Materialise shares its glyph ⌷
with Index.
Examples
Dyalog APL allows the user to define a class, which looks like the following:
:Class cl :Property Default thing :Access Public Shared ∇ r←get r←3 1 4 1 4 ∇ :EndProperty :EndClass
Works in: Dyalog APL
If one property is declared as default, Materialise returns the value of the default property.
⊢cl ⍝ It is an object #.cl ⌷cl ⍝ ⌷ casts cl to an array by getting the default property 3 1 4 1 4 cl.thing ⍝ Actual effect of the line above 3 1 4 1 4
Works in: Dyalog APL
Materialise can also be used on a .NET collection, which returns the underlying array of data.
ba←⎕NEW System.Collections.BitArray(⊂1 0 1 1 0) ⍬≡⍴ba ⍝ ba itself is a scalar object 1 ⍴⌷ba ⍝ but it is actually a container of 5 values 5
Works in: Dyalog APL
Materialise is the same as Identity for APL arrays.
(⌷≡⊢) 1 2 3 4 5 1
Works in: Dyalog APL
External links
Tutorials
Documentation