0

I would like to collect a list of atoms and pass a list to an object or abstraction that will pass through the matching atoms without modifying the order of the list, or removing duplicates.

(hello how are you) 
|
[desiredobject how are you]
|
[print]

Ideally this would print (how are you). If I were to put in (how how how) I would get back the same message. But if I were to put in (jfj jfj jfj) I would get nothing.

[zl] is useful but I am looking for the inverse behaviour of [zl filter].

EDIT:

I came up with the following solution that works equally well to the solution @mattijs posted. My solution uses [uzi] to give indices of the symbols in a list. The indices output of [zl filter] is fed to [zl unique] in order to strip out undesired indices. This new list is fed to [zl lookup] in order to convert back to the symbols. The (fake) message is inserted in case [zl filter] filters everything and then [zl unique] would have no output.


----------begin_max5_patcher----------
1385.3oc0Z0scipBE95jmBVdclYo3Owbt67bz0r5hnzDZMfGEa6zYMu6GDvD
v+hoMM0dQzHHvlu89aCrc+mkKb1xdEW5.9GvcfEK9yxEKjEUWvB8yKbNfdMI
CUJeMGJ9E11GcVophiekKKNGjTvJKKvOfKvzDbyKPqNvp3YXtr0Pcoph3+NG
qFZGmUhefeoq9AFkWRdSVoG7mtm5KBscWki3I6Izc2WfS3pdKHVzDP755qdt
t02fhqG6dRpTjESie3CcLFSJ5fbLc92BBJywbDvEZLQCJhFPxvOiKJILpTNW
oKGkmaT7BilTijOxjcTzpiEQnph7NVTA9YRS6cOVJpPLO4hIYUgRHeMNxQU4
eW1L3m.gvvn5IdPP800wxaQvfSvfPQuKik7DN0bbbX4XJglWfKwTNh2RLbRw
Ofpx322uJxt9GPI3AabuX8BmcEjTFsVHrZYcwMC2c.uPopMzbxHeCJJumFWJ
lGUkaQE0v51Lrg4ivBlwxrq5nlTPDPTxADGyIJgE5drSIGxKHTt0.goHQeru
TPExxr5JUMO2SMoBkcB9ERJeuruLgRwqSxaTANGwnTxNbI2tLNZWocIVLaSq
PSFtU4sX5RtVS20kK6YTSW97QEijAYXMYvS87kby.o1zUewpgVLdWydrKqGF
IswCkWggMWs5OCler4LKgc3.lpgzlh+6xkM+Y06DBa5Wig5nGyBbNKuJSXcA
pnj+qBCdgv2Cd.8DFH34G.DJHAUhABGMbbAXOpDPY.ATmWY0iYDJNgUoDe+A
0Wlv2.rWYUE61ZaH1QQ3MthvGpb45uQwRkJjf0CqJhbZIZs7MbEUHWOa5Kwz
bS3kXY5cKrLsVF21v7sLPlvC5ffDbTPZUafZDas9VPeHLzaizbxeiu5V6U06
rx9synRABNSh4cIDI8TN.FOMCG3svv4yZxp3HSdtF9ESR3fLv1O.GYKht68w
SNmQSjlZH29mO7mgiySh7tcDkC3xRzNbu.Z85dWEGyWI+Mv0wFqh4K853EOB
N5d6vwwcdq1Mwby+she66IMKCOq66P+4BbtqfUkOOQSswYn+YQS3r.M+Av6c
Rwkmz5yCGcgSyYY37fjW8FYXbzeLbTtrypS2+bwU8ZQAQmy9LXybgsOC24qF
KUGV97a7MX8rAKYrmlqtN8UNMCiOKbFLWfyl3.vdAfJvfeyplcmQSu2S8I+8
BNK39NVW5TH+pC7w.Q3RJb002OpWxpJRZfCczf.1RYJtjSnGC.5cmDXfm0Kt
mjlZGvQUL5Jqi3mJ1pSxD4RE4dDk9k45sRMSj45CaLcb1cVHy9STjmOR7jA4
fIZXbfjlyDaUPS17bCp2njm2Z02VPQ1MdvW8EX7B7qeO4S1hy7ABV+sSq0CG
5KyETvDk4vuehr+7QjWOUi4Me+j4P3GyGTnbWwwJ+MlO.g5sMGKOTWmXIdCv
fZ0AbJXf6rQu0inLhdalHyvoJyyGNcn+krF87PlibuDbdFsgyorI4nqEGD7q
klojgSI5Yb58hgPbJo6QbdAYaEWcrEyrI4il2DmOuLtfjInWgXjAenAcWFaK
JSm+LGaaO4rvxSfn7pR0OkzQx9SJb57xcOkb+gabjulvGMMj7TAWPsbz5n1e
.AqubW7HogzUDUd7gGA5eeUnBLxSFSPIpD3OJpr91fJ01J5eeY1J5HkprXFG
UbutnxPIzmL6l5ENbuf4r24RSOOn9Hiikld2H5wdbVFCLCbcnYGJ.xMbTygo
AMxlZGwLER0dEUMd0YkTnUHxF5PSV6lu6JncW8rilaxxy5oJOt2D4o0P0u7D
eyDG37Bcftelxix3tUh2VKJsR31VIaa2DscnjrULN+c4+C3uv.MC
-----------end_max5_patcher-----------
Adam Tindale
  • 1,239
  • 10
  • 26

1 Answers1

1

So basically you want to compare each item in list 1 to each item in list 2 and only pass through an item in list 1 if it is also in list 2?

It's possible this can be simplified btw, just a quick solution:


----------begin_max5_patcher----------
1198.3oc4Z1saihCEG+ZxSAhq6NBayWYuXk1mipQUFvIwcH1HvosyLpu6KXC
IlDRpIkkwilKBowewe94y4Xr64mqb7R4uQp8b+a2Gccb94JGGYQsE3z8aGu8
32xJv0xl4wHuxSe16AUUBxaBYwktYU755JxFREgkQ5avFNSTS+AosQ.3W76J
lcXOkUPDxwDdpP9AQeoftRKwhrcT11mpHYBkRQnlAxMtc3bA99seAat590tt
nFEw2KIp164crJZtTtMOB+EBpKRFdur0d+aEEW3oeyIUc7nCHMcfVPdgTUS4
LMo53gKK0J1QqKsT7YtbfBe3XQTlpHvwhpHuP66+ZUguupe3OQ.4yr7RTf7q
fDM.zLGtsfm8Mh7g0uuvbxFyGAdIgMVq6uLrkTVYEolvDXQm30uq3CEhmF2R
XX8avYjq14Qmgb71VQy4rVQLnmsE2e6dzEDJsUB00srELb4HcVv4Eo3p1ohz
Bxfo3FuCLitGKHBpROP+i8iturhxDCFKBC2LF6pa7OJJFLTpZdYjZxarBxHu
RyE6ji0IZMveU29R2ucP42x+cnOrvM0sPulqLkcgCLXXEZNwPsZFwQNzWyEF
A+R3PG4wclSwrsdOn4TetiML57GhyLc5q78Uq5+iGlebREMANlUZBtMMiWKo
IREPL97vhePnwKnXnUPw+w0+dfH7dgH.FnLFWOEaRoS+0.YfU.xsMgrVTRFo
.YnzPDE7YMGQVAEEtEKbLRkWMLNZJ1i2L9HHwJP4OJbYMquMqljFwRDLQ90Z
CMIuIKisEVtshenbQoYHPhwDokYHZNnYjsPyJx1eAVlvP4dZB7mCVFZIALS+
0DvbZKf+guTIHvVLMqOjtnllqUd1qk7L.NGlln+nMMApXkymoIb4v4dRcMdK
YTdti+pKth39c9gE8EM6np5K06IARt6WzD.9Sd2iPezrr6wELZo7Y26Z7v+d
4g5rI5VJNr+58t6k05BLiueOQcLQd+FPB.JZFQAxeIPgROdS2Kw2j24MHJ5F
rP+gELkG1SmMYAkcsi4SJp15GmB07CUY8SB8qN3NTf4jZAkc7nZe7TfuyZ3N
Zd9viFUcr04kbJSzIP2uZz71T0cfoxNvpjMvXcGZW5t0LAXptA1EuMR2H6R2
ISQ2VjcBxT66X6i2FqaKi2lXm.sq3fPSiCBsL663ona6w9FZreYjcw6PS0ch
cYeartg1ktiLMdhk89I.C4cf8g6eCcKa2vpYgAsKc2t6Ry2siE85IlZmflyc
o0UXeFF4Uiegj+TysoY+tOgEhJZ5AgZin5o+z1BdJtnK2nNdvNGyHmQyjm+u
R+mOJ8ht1YOonf7pZ9yjjea3oedqS9bRI9ldtSocVCPUlb.Rfik3Ulmtbf.U
9xgF+7QMLc4fI2Hc4lQV97lmc69LmrLAoR0nOIKgAp+O7xQSw06gkwKCKasK
69LirDr1eVXIHL3DKStaV5Our7ZI3pLw9l.DAihC+OJqVA.z34Ki9y7B4Jti
TTvc+jA2lXV81QA+v60bvLzH65viYUQpyW3tiWW9BR5KCes0pG1nKVmd70nu
XxyXI4agZJ1B0ThoZBrXZBYh8Txm.SM+38U+GN+kvWC
-----------end_max5_patcher-----------

Hope that helps,

Mattijs

Mattijs
  • 1,909
  • 3
  • 19
  • 28