Reputation
Next tag badge:
283/100 score
18/20 answers
Badges
8 227 320
Newest
 Nice Answer
Impact
~513k people reached

May
25
revised rule-based implementation of an algorithm
edited tags
May
25
answered rule-based implementation of an algorithm
May
25
comment Why changing list's head takes time?
Because HoldComplete unpacks, when Apply is used (or, rather, Apply unpacks).
May
25
awarded  Good Answer
May
24
comment How to apply multiple/complicated requirements for a pattern in a function input
The last line in your post will work - you just need extra parentheses: myfunction[W_?(MatrixQ[#,NumericQ]&)]. See this question for an explanation. If this was the main difficulty you had here, I'd consider this question a duplicate.
May
24
comment How can I set multiple values to local variables in a Module?
In my answer to a similar question about With on SO, I posted a macro which can do this. You can just replace With with Module there, if that kind of solution fits you.
May
24
awarded  Enlightened
May
24
awarded  Nice Answer
May
23
revised Having used Mathematica as a “gateway” language, where to from here?
Added mentions of Groovy and JRuby
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@GaryS.Weaver Thanks. Re: add - agree on JRuby ad Groovy, while Java is on one hand sort of obvious (JLink), on the other hand, I would not recommend it unless necessary, given all the modern alternatives. I used to code in Java for a living, but that was out of necessity rather than voluntary for those Java projects I worked on. I still use it when it is a good tool for a job, but I already know it, while this was a question of which new language to learn. One can really learn OO when working with huge Java projects (I did), but one can probably do just as well with Scala these days.
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@Stefan Re:"hub" - yes, it won't be very easy, but I think it's quite possible, and also I feel that this direction has a huge potential. Generally, we seem to live in a very eclectic time, where a lot of knowledge and resources have been accumulated in narrow (sub)fields, while few attempts were made so far towards the synthesis. Since the common denominator must be a broad and permissive medium, imposing least possible contraints (in the first place, on thinking / expressing ourselves), I view Mathematica as a viable candidate for such an integration medium for programming.
May
23
awarded  Nice Answer
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@Jens I have not used Python for anything serious, so can't comment on that, but I have no problem to believe that it is great as a technology integrator (I also know that lots of people are using it in this capacity). The reason I think that Mathematica still has huge potential here is that I think it is important what thinking mode does the integrating medium impose on the developer. This mode will naturally be limited to what that language allows (again, in terms of thinking process). I think Mathematica allows very powerful generic thinking process which would be hard to achieve otherwise.
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@Jens Re: what things - more efficient implementations of some algorithms than Mathematica easily allows. Adding more functionality via reusing other languages in areas where Mathematica's own functionality is currently missing. Constructing applications where Mathematica is used a a back-end (perhaps one of ), in the larger infrastructure. Borrowing powerful programming techniques from other languages and porting them to Mathematica. I could go on with the list. My point is, Mathematica's role and potential as a technology integrator I view currently as just as important, as its core role.
May
23
revised Having used Mathematica as a “gateway” language, where to from here?
deleted 7 characters in body
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@SimonWoods Re:C - Sure, I totally agree. Re: Javascript - I think that given the current realities and the amount of good code / literature that became available for Javascript in the recent few years, it may serve the same purpose as Python served before (in purely pedagogical aspect) - a language high-level enough to not worry about some low-level stuff, and powerful enough to be able to do cool things quickly, and also supporting the majority of popular paradigms (object orientation is perhaps still best learned via Python, since JS's version of OO is rather peculiar).
May
23
revised Having used Mathematica as a “gateway” language, where to from here?
Added some more considerations
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@Jens I think this question is of that rare type which,while having no definite answer, may allow us as a community to reflect our place in the programming universe. So, just for this alone, I would make an exception and keep it. Perhaps, this is a close proxy to another question which many of us might be interested in: how does one productively expand his/her programming skills to be able to do more powerful things, having Mathematica as a base, and so that this base background is used most effectively. This is pretty much what was asked.
May
23
awarded  Nice Answer
May
23
comment Having used Mathematica as a “gateway” language, where to from here?
@SimonWoods Well, I really love C. It just so happens that recently I did not have many chances to work with it, but I hope that will change. Actually, I empirically found that I tend to really like languages which are good to both write code in them and to generate code automatically. From the langauges I know reasonably well and like a lot, all - Mathematica, C and Javascript - do have this property.