Hi Alex,

I pushed a commit to master for ?change-at with two slight changes.

1) I kept the ( key assoc quot -- ) stack effect that ?change-at has.

2) I used ``at*`` so that it works with keys that have a value of ``f``.
Your version uses ``of`` which is like ``at`` and doesn't distinguish
values set to false with unset values.

See what you think!

Best,
John.

On Mon, Aug 17, 2020 at 4:29 PM John Benediktsson <mrj...@gmail.com> wrote:

> Ah, gotcha!
>
> That could be cool. I’ll push a commit later for that!
>
> > On Aug 17, 2020, at 9:22 AM, Jon Harper <jon.harpe...@gmail.com> wrote:
> >
> > I think Alex wanted the conditional execution of the quot.
> > if the key doesn't exist in the assoc, change-at provides f as value,
> > but still stores the newvalue in the assoc at the given key.
> >
> > Jon
> >
> >> On Mon, Aug 17, 2020 at 6:18 PM John Benediktsson <mrj...@gmail.com>
> wrote:
> >>
> >> https://docs.factorcode.org/content/word-change-at,assocs.html
> >>
> >> On Aug 17, 2020, at 8:31 AM, Alexander Ilin <ajs...@yandex.ru> wrote:
> >>
> >> Hello!
> >>
> >> I came up with this code, because I could not quickly find an existing
> word for this.
> >> Did I miss it? If not, would it be a useful addition to the assocs
> vocab?
> >>
> >> ! If key exists in the assoc, change its value with quot.
> >> : ?change-value ( assoc key quot: ( value -- value' ) -- assoc' )
> >>   [ swap pick set-at ] compose [ 2dup of ] dip [ drop ] if* ; inline
> >>
> >> ! Usage example:
> >> : ?decode-opt ( assoc -- assoc' )
> >>   "opt" [ string>options ] ?change-value ;
> >>
> >>
> >> ---=====---
> >> Александр
> >>
> >>
> >>
> >> _______________________________________________
> >> Factor-talk mailing list
> >> Factor-talk@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/factor-talk
> >>
> >> _______________________________________________
> >> Factor-talk mailing list
> >> Factor-talk@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/factor-talk
> >
> >
> > _______________________________________________
> > Factor-talk mailing list
> > Factor-talk@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/factor-talk
>
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to