World: r3wp
[Core] Discuss core issues
older newer | first last |
Henrik 23-Feb-2009 [12641] | what was the source for as-lit-word? again? |
[unknown: 5] 23-Feb-2009 [12642x2] | http://www.tretbase.com/forum/viewtopic.php?f=8&t=30&p=141#p141 |
as-lit-word?: make function! [ "Returns logic on whether the val argument is as a lit-word! type" val ][ not error? try [= :val make lit-word! :val] ] | |
Dockimbel 23-Feb-2009 [12644] | You're using the wrong operator, your should be using == instead of = to test for datatype equality. not error? try [== :val make lit-word! :val] |
[unknown: 5] 23-Feb-2009 [12645x4] | You can use that also Doc and it still works. |
I have already used both in my function. | |
A gave the link because the one on my computer actually has the == symbol instead. | |
I will probably update the website one later. Still testing some other modifications to the function. | |
Dockimbel 23-Feb-2009 [12649] | >> a: 'test == test >> :a == make lit-word! :a == false >> :a = make lit-word! :a == true |
Henrik 23-Feb-2009 [12650] | Doc, the problem is that Paul never actually passes a lit-word to the function, so he can't test for strict-equal?. It just happens to work the way he wants for lit-words. |
[unknown: 5] 23-Feb-2009 [12651x2] | >> as-lit-word? 'test == true |
See doc - that is with the strict equal. | |
Dockimbel 23-Feb-2009 [12653] | What does mean the resulting value of as-lit-word? That no error happened? What's the point? |
[unknown: 5] 23-Feb-2009 [12654] | gotta call in for unemployment be back in awhile depending on when i get thru on the phone. |
Dockimbel 23-Feb-2009 [12655x2] | Henrik: yeah I see now what's he is doing. The function just returns true for word! values passed as argument. I still don't see the point...looks like Paul is chasing windmills. |
Paul, in your examples : as-lit-word? test is equal to : as-lit-word? 1. Functions arguments are evaluated before the function is called except if the functions arguments are defined as lit-word! in the specification block. | |
BrianH 23-Feb-2009 [12657] | Paul, your LIT-WORD? function returns true if passed a word! value, which breaks it. |
Geomol 23-Feb-2009 [12658] | >> a: 'test == test >> type? a == word! >> type? :a == word! >> a: to lit-word! 'test == 'test >> type? a == word! >> type? :a == lit-word! As I see it, 'test gets evaluated to a word. |
BrianH 23-Feb-2009 [12659] | LIT-WORD? needs to return false for values of other word types. That is its job. |
Geomol 23-Feb-2009 [12660x2] | Agree. |
And that is what it does, right? So no problem there? | |
[unknown: 5] 23-Feb-2009 [12662x5] | back. ok it only took like 35 redial attempts to get through the Illinois unemployment claims service this week - unbelievable. |
Ok, let me check it out | |
Doc, I'm testing to see if a word behaves like a lit-word. | |
That is all my function does. | |
BrianH, it doesn't break. My function is not a replacement for lit-word? function. | |
BrianH 23-Feb-2009 [12667] | Nice to hear. Interestingly enough, you can write code in R3 without lit-word!, get-word! or set-word! values in the code. Not R2 though. |
[unknown: 5] 23-Feb-2009 [12668x2] | Doc, the reason in the example above that mine returned true was because it matched the error. But that is what I want because it still indicates that the word behaved in a manner of a lit-word. |
That is why the function is called as-lit-word. I changed it yesterday to get rid of this idea that it is matching a lit-word. | |
BrianH 23-Feb-2009 [12670x2] | Just add one function: quote: func [ "Returns the value passed to it without evaluation." :value [any-type!] ] [ :value ] And you can pretend that there are no lit-word!, get-word! or set-word! types. It needs R3's get-word! parameter semantics though. |
(sorry for the formatting of that last message) | |
[unknown: 5] 23-Feb-2009 [12672x2] | I'll look into that Brian. I don't do much with R3 right now. |
Since were talking about R3, do you really need a true? function? | |
Henrik 23-Feb-2009 [12674] | BrianH, what exactly does the :value do in function header? What is passed? |
[unknown: 5] 23-Feb-2009 [12675] | isn't make logic! enough? |
BrianH 23-Feb-2009 [12676] | Yes, you need TRUE?. Make logic! isn't the same thing. |
[unknown: 5] 23-Feb-2009 [12677] | Tell me how they are different. |
Henrik 23-Feb-2009 [12678] | looking at TRUE?, it seems to have been added for readability. I missed it sometimes in R2. |
BrianH 23-Feb-2009 [12679] | >> make logic! 0 == false >> true? 0 == true |
[unknown: 5] 23-Feb-2009 [12680] | I used make logic! mostely for the TRUE? effect in R2. |
BrianH 23-Feb-2009 [12681] | I use TRUE?. That was copied from R2. |
[unknown: 5] 23-Feb-2009 [12682] | Yeah but I don't need True? in that case if I have make logic! |
Henrik 23-Feb-2009 [12683] | BrianH, interesting. Why is there difference? (sorry for all the questions) |
[unknown: 5] 23-Feb-2009 [12684x2] | it was copied from r2? |
make logic! works like C code. | |
BrianH 23-Feb-2009 [12686] | I've backported most of R3 to R2. |
[unknown: 5] 23-Feb-2009 [12687x2] | I guess, I see the need for true? to be extremely limited. |
I only bring it up because these are things I'm concerned about in R3. | |
Henrik 23-Feb-2009 [12689] | TRUE? is very useful in case of PICK. |
[unknown: 5] 23-Feb-2009 [12690] | make logic! works in pick also |
older newer | first last |