Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 17:22
    hiiamboris commented #4739
  • 17:21
    hiiamboris commented #4739
  • 17:10
    hiiamboris commented #4739
  • 17:08
    hiiamboris commented #4739
  • 17:01
    hiiamboris commented #4739
  • 16:56
    hiiamboris commented #88
  • 16:35
    hiiamboris commented #4739
  • 16:26
    Oldes edited #88
  • 16:25
    Oldes edited #88
  • 16:24
    Oldes opened #88
  • 12:42
    dockimbel assigned #4739
  • 09:56
    rebolek commented #87
  • 09:55
    rebolek commented #87
  • 09:32
    loziniak commented #87
  • 08:50
    qtxie opened #4739
  • 08:29
    rebolek commented #87
  • 07:37

    qtxie on master

    FIX: better fix for issue #4706… (compare)

  • Nov 29 19:29
    dockimbel commented #4716
  • Nov 29 19:29
    dockimbel labeled #4716
  • Nov 29 19:29
    dockimbel labeled #4716
GiuseppeChillemi
@GiuseppeChillemi
@greggirwin from your experience, in presence of a SKIP refinement, do you could think it could be possible to be considered as key an element different from the first one?
Rudolf Meijer
@meijeru
Why not use find/skip?
GiuseppeChillemi
@GiuseppeChillemi
@meijeru because the selection phrase using find would be long and also the intent is having a select not limited to the first column but capable of retrieveing the others composing the record.
@meijeru it is really useful when you have external database tables stored in a block and you need to select an item:
The first feature let you access any column, the second one let you use any column as key.
Toomas Vooglaid
@toomasv
@GiuseppeChillemi Why not do it? Something like this:
mydata: make hash! [
     key1 value11 value12 value13
     key2 value21 value22 value23
     key3 value31 value32 value33
     key4 value41 value42 value43
     key5 value51 value52 value53
]
myselect: func [data key len pos][
    pick find/skip data key len pos
]
myselect mydata 'key1 4 1
;== key1
myselect mydata 'key1 4 3
;== value12
myselect mydata 'key3 4 2
;== value31
myselect mydata 'key5 4 4
;== value53
GiuseppeChillemi
@GiuseppeChillemi
@toomasv good! Why not implementing it in select? It's seems so easy!
Toomas Vooglaid
@toomasv
Because it is so easy !?
GiuseppeChillemi
@GiuseppeChillemi
@toomasv 😁 because you do not have to learn another word and it's syntax and select will become a very powerful command? (promise I will not continue!)
Toomas Vooglaid
@toomasv
IOW "Red should do everything I think it might do." You are going to rob programmers their job :imp:
GiuseppeChillemi
@GiuseppeChillemi
@toomasv (hovever, thank you for your implementation)
Toomas Vooglaid
@toomasv
:smile:
It's like Lego. If you have an idea, you put pieces together to realize it, not write a letter to Lego Company to do it.
GiuseppeChillemi
@GiuseppeChillemi
@toomasv Yes but Legos once where sufficient to create some buildings, now you can create and drive full robots. That's because mother house has not stopped receiving and implementing suggestions and ideas.
GiuseppeChillemi
@GiuseppeChillemi
I see find too could receive the same improvement. You could find on different position than the first one of the /SKIP group.
I will write a request for both.
hiiamboris
@hiiamboris
find already supports that
Gregg Irwin
@greggirwin

@GiuseppeChillemi select is not going to add this feature. It's design was reconsidered to match R3, not R2, and @toomasv showed the way to do this. What is one short line in Red, would be a large amount of Red/System code in multiple datatypes, because it's an action.

I appreciate that you have a different perspective, but when deeply experienced Reducers push back on your idea, you tend to push forward with the same request again. Do NOT write a request for these. Find/Select work this way by design.

Well, you can write a request if you want, but it will be rejected. Save your time for other things. :^)
GiuseppeChillemi
@GiuseppeChillemi
@greggirwin Greg, I don't know how deep is the change to implement this feature. I have thought about the speed and completeness of the selection/find mechanism but I can survive until resources and willingness be available. But please admit you liked this feature too in the first instance! @toomasv Please stop creating solutions to my ideas so quickly, you are ruining my requests! ;-)
(I have just corrected my text)
LFReD
@LFReD

I was working on this Atomica stuff back in 2010, so trying to refresh my memory climbing over the Altme archives, and came across this historical conversation. It's @dockimbel , @gchiu and I discussing the pros and cons of cloning Rebol. Interesting read.

http://www.rebol.org/aga-display-posts.r?post=r3wp495x8388

GiuseppeChillemi
@GiuseppeChillemi
@hiiamboris I am not able to understand the code (and maybe today I am too tired). Is has find this feature or that code mimics this feature ?
hiiamboris
@hiiamboris
>> key: 1  b: [0 0 0 1 1 1 2 2 2]  find/skip (skip b 2) key 3
== [1 2 2 2]    -- search by 3rd column of b
GiuseppeChillemi
@GiuseppeChillemi
So find is able to skip the searched series without interfering with its index. Good to know, great!
GiuseppeChillemi
@GiuseppeChillemi

@greggirwin

but when deeply experienced Reducers push back on your idea, you tend to push forward with the same request again

Greg, I didn't read this part. Why I ask a second time ? I see in my this vision the RED documentation chapter on Select with an example like mine and new developers all thinking: "great I can search in a blocks like I actually do in databases table, what a great language!". This because in the example you will show them intersects with what they are used to manage day after day. Do you know that showing to the potential adopters, in the very first moments, an operational framework similar to their usual one increases the adoption chance? I am a developer too and I remember when I have chosen something because of that something interacting with my needing. These are the reasons that would drive the request to reconsider that /pos refinement: its a MARKETING one other than a functional one.
However, thanks to your reply came the idea of creating a page about using RED blocks as database tables in programming.red.

Petr Krenzelok
@pekr
I would like any such discussions to move into some other channel. It is imo too much related to one's own projects vs the proposal towards the general language developments ....
GiuseppeChillemi
@GiuseppeChillemi
@pekr I don't agree. Select is one of the core instruction of Red. I have not asked for help for a solution (despite very welcome) but to have another refinement in select/find. Now the discussion is at its end, and the topic drifted and we need to move but until now we were talking about one of the Red core functions.
Feel free to continue this discussion on https://gitter.im/red/chit-chat
Semseddin Moldibi
@endo64
@GiuseppeChillemi Here is another solution with parse:
>> pos: none parse [1 2 a 3 4 b 5 6 c] [some [pos: 2 skip 'b (print ["Found record at index" index? pos] pos ) fail | 3 skip]] pos
Found record at 4
== [3 4 b 5 6 c]
GiuseppeChillemi
@GiuseppeChillemi
@endo64 you are all so generous, thank you!
GiuseppeChillemi
@GiuseppeChillemi
image.png
@endo64 :point_up_2: I have understood what this POS does
Nenad Rakocevic
@dockimbel

@GiuseppeChillemi

Select is one of the core instruction of Red.

It is not a fundamental "instruction", it is just a convenient syntactic sugar for second find on series to cover the common bias towards key/value pairs. You can build your own specific select-nth variation trivially (pick find ... nth), there is no need to bloat the runtime environment with such construct.

Petr Krenzelok
@pekr
Nice to see you, Doc!
GiuseppeChillemi
@GiuseppeChillemi
@dockimbel Nenad, we can do anything creating other functions, you are right. I think that having a full table search and retrieve methodology in the basic commands gives a sense of power when RED introduces itself to the developers, the so-called WOW factor!
@dockimbel Also, I add my words to Petr ones: nice to see you !
Semseddin Moldibi
@endo64
@GiuseppeChillemi pos in ...] pos) fail | 3 skip] part is unnecessary, a copy/paste error probably.
LFReD
@LFReD
@GiuseppeChillemi If you're looking for some specific feature in Red, then just fork it!
GiuseppeChillemi
@GiuseppeChillemi
The only fork I will activate will be on my pasta tomorrow.
Gregg Irwin
@greggirwin
:^)
LFReD
@LFReD

I wrote a little function to help you with that, maybe you can include it in your Red/system ...

fork: func [dishtype dishloc receivingdock][print rejoin ["Move fork to " dishtype " located at " dishloc " to " receivingdock]]

fork "pasta" "dinner table" "mouth"

Don't tell @Oldes about this, he'll rewrite it for sure ;)
Rudolf Meijer
@meijeru
@LFReD You can leave out the rejoin since print does that all by itself.
LFReD
@LFReD
Doh!
Rudolf Meijer
@meijeru
Moreover, print inserts spaces between each of the components of the block, so you don't need to put those in yourself.
Admittedly, this operation is not adequately documented. It does figure, however, in the "specs" document https://github.com/meijeru/red.specs-public/blob/master/specs.adoc, that I am responsible for. See section 11.2.
stmungo
@stmungo
Would someone tell me how to join the (Google) mailing list or where I would find instructions for same, please, When I click on the Red website mailing link the page says the group does not exist... Thanks.
ne1uno
@ne1uno
there does seem to be a problem accessing red-lang group by link or search
mostly of historical interest. browsing gitter red/help probably has more information