Re: Chained-functional notation examples?
- To: mathgroup at smc.vnet.net
- Subject: [mg132695] Re: Chained-functional notation examples?
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Wed, 7 May 2014 02:44:23 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
On 5/6/14 at 2:26 AM, dog at gmail.com (Unknown) wrote: >I came to 'Mathematica' via Xahlee's criticism of the ad-hoc nature >of unix-piping [functional notation]. He claims [& I believe him] >that Mathematica has a better, more consistent notation. But the >facility of PRE, IN & POST-fix alternatives, seems bad. You want >ONE way of acieving the goal. More rules just increases mental load. If you are looking for a system with one way to achieve a given goal, Mathematica isn't it. There are multiple ways of achieving a result without using different notations. For example, consider how you might find the sum of the first n integers. All of the following will work: limit = 10^6; For[sum = 0; n = 1, n <= 10, n++, sum += n]; sum Plus@@Range[limit] Total[Range@limit] Sum[n,{n,m}]/.m->limit Intelligent use of pre-, post- and in-fix notations generally makes Mathematica code easier to read/understand. For example, I could have written Total[Range@limit] as Total[Range[limit]] but fewer levels of [] makes it easier from my perspective to read. >Just as a test, how would Mathematica handle the following [or part >of] little task: >search all files in Dir=tree D | >which are less than N days-old | and which contain string S1 | and >which contain string S2 . SetDirectory[dirname]; Cases[FileNames[], (FileType[#]===File && StringCases[#, s1]!={} && StringCases[#, s2]!={} && (Subtract@@(AbsoluteTime /@ {Date[][[;; 3]], FileDate[#][[;; 3]]}/86400)<age)&] No need to pipe results from one operation to the next. And the above syntax is platform neutral. >Try: Search in table of ListOfOpenFiles for lineS with path-P >[field] | which have same tty-field as line with path-P2 & program-M [field] Less clear here to me what it is you are looking for, but FindList is probably the right function.