The labs are very imformative and the demos can give you insights into what you can do. Also see the differences between console, qt and jhs. They each have vastly different possibilities. Not to mention all the help you can get from the forums past and present. Here are very clever people giving you advice. On 25 Nov 2017 02:40, "Alex Shroyer" <[email protected]> wrote:
> Thanks all for responding to my tangent in this thread. > I will give all the suggestions more study and see if they do in fact > already meet my needs. > > Cheers, > Alex > > On Fri, Nov 24, 2017 at 12:29 AM, Raul Miller <[email protected]> > wrote: > > > The 'do' verb is one of a variety of tools for building and using > > executable J dynamically at run time. (Which can be valuable for > > development and testing tools.) > > > > Other ways include: > > > > * the explicit conjunction ( : ) > > * gerunds > > * 0!:n > > * 128!:2 > > > > Also, worth considering, in this context, are locales (which can serve > > as objects, classes, stack frames, and so on) and/or indirect > > assignment ( (leftexpression)=: rightexpression ) and/or the debugging > > tools ( 13!:n ). > > > > Thanks, > > > > -- > > Raul > > > > > > > > On Thu, Nov 23, 2017 at 11:01 PM, Erling Hellenäs > > <[email protected]> wrote: > > > Hi all! > > > > > > Another way to do the same thing. This function reads an explicit > > function > > > definition from terminal input. > > > > > > Scan =: 3 : 0 > > > a=.1!:1 [1 > > > ". a > > > f/\y > > > ) > > > Scan 2 3 4 > > > f=.4 : 'x*y' > > > 2 6 24 > > > > > > I just use terminal input to demonstrate that this really happens at > > what we > > > can feel is runtime. It means you can manipulate ascii data at runtime > > and > > > produce functions which you then execute, and which can be input to > other > > > already-defined functions. > > > I guess using Do(".) is the 'normal' way to do it in explicit code. > > > > > > Cheers, > > > Erling Hellenäs > > > > > > > > > > > > On 2017-11-23 16:25, Erling Hellenäs wrote: > > >> > > >> Hi all! > > >> > > >> > > >> https://en.wikipedia.org/wiki/Scope_(computer_science)#Lexic > > al_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/forum > > s.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 > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
