World: r3wp
[I'm new] Ask any question, and a helpful person will try to answer.
older newer | first last |
sqlab 15-May-2009 [2459x2] | Unfortunately you can infer from the name to the look.) But I will give you another hint, try to use new-line/all with your data |
should read "you cannot .." .) | |
Henrik 15-May-2009 [2461] | mhinson, for your next scripts, maybe you should work a bit more on things that are completely unrelated to parse. it helps to get away from it a while and then get back to it later. |
BrianH 15-May-2009 [2462x4] | ARRAY can take a function as the initial parameter, and that function will be called. Try this: port-proto: make object! [ vlan: copy [] ;; will hold a number or perhaps a list of numbers e.g. 20 or 3,5,7 UpState: copy [] ;; none or "disabled" name: copy [] ;; any string ] switch-module: array/initial [13 48] does [make object! port-proto] |
That will give you 13x48 unique objects in nested blocks. | |
>> x: 0 == 0 >> array/initial [2 3] does [x: x + 1] == [[1 2 3] [4 5 6]] | |
One interesting thing to note is that because the data in the objects is blocks, MAKE will bind/copy the blocks to the new object. This is why you don't have to copy the blocks explicitly when you make a new object based on the proto. | |
Steeve 15-May-2009 [2466] | i should use array too now, i didn't noticed those usefull evolutions |
Henrik 15-May-2009 [2467] | oh, I didn't know that one. |
Izkata 15-May-2009 [2468] | Wow, I was looking for something like that.. |
mhinson 15-May-2009 [2469x2] | Have I broken REBOL ? >> print round 2 ** Script Error: Cannot use subtract on decimal! value ** Where: throw-on-error |
I put Protect-System on & found what I had done... It was a bit confusing what I was seeing till I worked this out. | |
Maxim 15-May-2009 [2471] | did you replace the value of round by any chance? |
mhinson 15-May-2009 [2472] | no mod |
Steeve 15-May-2009 [2473] | SHAME ON YOU ;-) |
mhinson 15-May-2009 [2474x2] | I used mod to recieve date from copy in a parse |
I almost didnt because I know mod is maths term... I supose modifying the system is not on your mind till you are more of a Rebol. | |
BrianH 15-May-2009 [2476] | I made that change to ARRAY over a year ago for R3, then backported it to R2 for the 2.7.6 release. EXTRACT/default and REPLACE too. |
Steeve 15-May-2009 [2477] | SHAME ON US :-) |
BrianH 15-May-2009 [2478] | Hey, if I hadn't written it myself I wouldn't have noticed either :) |
mhinson 15-May-2009 [2479] | I like the sound of that Brian, but as your example dosn't work I dont really understand the syntax.. >> switch-module: array/initial [13 48] does [make object! port-proto] ** Script Error: Invalid argument: object |
BrianH 15-May-2009 [2480x2] | First, which version of REBOL are you using? If not 2.7.6, it won't work. |
Oh wait, it's the contents of the does. Try this: does [make port-proto []] | |
mhinson 15-May-2009 [2482x2] | 2.7.6.3.1 it is new like me |
That works, thank you. | |
BrianH 15-May-2009 [2484] | Even the old guard makes newbie mistakes sometimes :) |
Steeve 15-May-2009 [2485] | 10 push-ups for Brian |
mhinson 15-May-2009 [2486] | I nearly guessed it, but as a noob there are so many options that I could be a while wondering if it is my typing or something too basic to notice. |
BrianH 15-May-2009 [2487] | Clearly the latter :) |
mhinson 15-May-2009 [2488] | These hordes of newbies, always asking foolish questions & never looking at the documentation. ;-) |
Steeve 15-May-2009 [2489] | they are not so much (newbies) there, they faint after some days usually |
BrianH 15-May-2009 [2490] | I'm not sure how well-documented the change to ARRAY is. I didn't handle the documentation of the 2.7.6 release. |
Maxim 15-May-2009 [2491] | someone did? ;-) |
mhinson 15-May-2009 [2492] | if I have this mike: array/initial 3 array/initial 3 array/initial 3 none modAndPort: "2/2" UpState: 2 data: "disabled" How do I use the variables to create this logic please mike/2/2/:UpState: data mike/ModAndPort/:UpState: data Something like this I was hoping mike/(ModAndPort)/:UpState: data ** Script Error: Invalid path value: 2/2 |
BrianH 15-May-2009 [2493x2] | I don't know, Maxim. We have to do better about that in future R2 releases. |
Mhinson, your first line can be this: ARRAY [3 3 3] The none value is the default, and the multiple calls can be replaced by the [3 3 3]. | |
mhinson 15-May-2009 [2495] | More typing saved, thats good. |
BrianH 15-May-2009 [2496] | As for the path stuff, you may be out of luck. Try this: m: 2 p: 2 u: 2 mike/:m/:p/:u: "disabled" |
mhinson 15-May-2009 [2497] | ok, so I have to split it into integers.. Nice to hear it from the developer of the ARRAY :-) |
BrianH 15-May-2009 [2498x2] | It's not just more typing saved. The value passed to array/initial is not copied, it is referenced. Your version would have aliasing issues. |
If you specify multiple dimensions instead it creates unique nested blocks instead of multiple references. | |
mhinson 15-May-2009 [2500] | Thanks for point this out, I see it is very important. I will try to use your new function passing once I get it working in a basic form. Thanks. |
BrianH 15-May-2009 [2501x2] | Learn to love the SOURCE function :) |
>> source array array: func [ "Makes and initializes a series of a given size." size [integer! block!] "Size or block of sizes for each dimension" /initial "Specify an initial value for all elements" value "Initial value" /local block rest ][ if block? size [ rest: next size if tail? rest [rest: none] size: first size if not integer? size [make error! "Integer size required"] ] block: make block! size case [ block? rest [ loop size [block: insert/only block array/initial rest :value] ] series? :value [ loop size [block: insert/only block copy/deep value] ] any-function? :value [ loop size [block: insert/only block value] ] insert/dup block value size ] head block ] | |
mhinson 15-May-2009 [2503] | I often look at it but lak the skill to interpret it very well. |
Maxim 15-May-2009 [2504] | help & source are so powerfull a feature in rebol |
BrianH 15-May-2009 [2505] | They're how I learned this stuff :) |
Maxim 15-May-2009 [2506] | people don't realise that the console provides many features visual IDEs dont provide |
Steeve 15-May-2009 [2507] | oh was that a RTFD coming from Brian ? so mean... |
BrianH 15-May-2009 [2508] | Wait, it does copy/deep the initial value. It's been a while since I looked at that function :( |
older newer | first last |