Years ago got involved with what functions and operators are. I don't
remember them being defined when I was in school. Teachers just started
using the names. So, I got hold of several textbooks from early elementary
school to college looking for definitions. Never found one. Googled it.
Lots more than I ever wanted to know.

On Thu, Nov 23, 2017 at 1:17 PM, Raul Miller <[email protected]> wrote:

> Note that verbs, adverbs and conjunctions are all functions. This
> includes both the primitive, derived tacit and explicit variants.
> Also, gerunds represent functions.
>
> That said, the definition of a first class citizen at
> https://en.wikipedia.org/wiki/First-class_citizen seems hostile to
> some concepts of pure functional languages. In particular, the
> requirement that first class citizens be "modifiable". So I'd be a bit
> hesitant to rely on that conception.
>
> Thanks,
>
> --
> Raul
>
> On Thu, Nov 23, 2017 at 10:25 AM, Erling Hellenäs
> <[email protected]> wrote:
> > Hi all!
> >
> > https://en.wikipedia.org/wiki/Scope_(computer_science)#
> Lexical_scope_vs._dynamic_scope
> >
> >    AddScan =: 3 : 0
> > add=.4 : 'x + y'
> > add/\y
> > )
> >    AddScan 2 3 4
> > 2 5 9
> >
> > I don't understand how your example shows lexically scoped functions,
> but as
> > far as I understand, "add" in the example above is an explicit
> definition of
> > a lexically scoped function.
> >
> > I don't think functions are first class citizens in J according to this
> > definition. https://en.wikipedia.org/wiki/First-class_citizen
> >
> > Functions can not return functions. They can take functions as arguments,
> > but resolution is normally done in some pre-interpretation stage, like
> with
> > macros in other languages.
> >
> > There are ways in explicit code to establish functions from from ascii
> > representation in runtime. Here is an example:
> >
> >     Scan =: 3 : 0
> > a=.1!:1 [1
> > f=. a 5!:0
> > f/\y
> > )
> >    Scan 2 3 4
> > *
> > 2 6 24
> >    Scan 2 3 4
> > +
> > 2 5 9
> >
> > This function establishes a function from terminal ascii input.
> >
> > So, with explicit code you can manipulate ascii representations of
> functions
> > and create new functions at what is similar to "runtime". You can pass
> these
> > ascii representations as variables. The functions you create can be used
> as
> > parameters to functions, as the example shows.
> >
> > Cheers,
> >
> > Erling Hellenäs
> >
> >
> > Den 2017-11-21 kl. 19:56, skrev Alex Shroyer:
> >>
> >> @AndrewD: I've been using J casually for about 2 years, and consider
> >> myself
> >> an "intermediate beginner".  I also use Python, and my impression is
> that
> >> Python makes it easy to see what the author *wanted* the program to do,
> >> but
> >> J makes it easier to see what the program *actually does*.
> >>
> >> However, one frustration I still have is regarding explicit definitions.
> >> IMO they should be replaced with something more like what the K language
> >> provides, namely first-class, lexically-scoped functions:
> >>
> >>     add: {x+y}
> >>     scan: {x\y}
> >>     scan [add; 2 3 4]
> >> 2 5 9
> >>
> >> Perhaps J's syntax could be extended someday, to recognize this type of
> >> function in an explicit definition, for example:
> >>
> >>     add =: dyad def 'x+y'
> >>     scan =: HOF def 'x\y'  NB. in this scheme, HOF stands for
> >> 'higher-order
> >> function' and tells interpreter to not evaluate x or y until both
> >> arguments
> >> are bound
> >>     add scan 2 3 4
> >> 2 5 9
> >>
> >> There are a few other things I'd like J to take from K, but that's the
> big
> >> one.
> >>
> >> On Mon, Nov 20, 2017 at 11:16 AM, chris burke <[email protected]>
> >> wrote:
> >>
> >>> Dear All
> >>>
> >>> My attempt to move this thread over to programming failed, but please
> >>> note
> >>> for future use that discussions like this on the language are much
> better
> >>> addressed to the programming forum. Not least, they will then reach
> all J
> >>> forum readers, not just those subscribed to general. See http://code.
> >>> jsoftware.com/wiki/System/Forums .
> >>>
> >>> Thanks.
> >>>
> >>> Chris
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >>>
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to