Reputation
80,248
Next tag badge:
288/100 score
18/20 answers
Badges
8 235 330
Newest
 Good Answer
Impact
~556k people reached

2m
comment Strategies to compensate for lack of multi-document interface?
Actually, I seem to be wrong about single-kernel version. The posted one can run on 2 kernels already. Configure the new kernel called "Background" (via menu Evaluation -> Kernel configuration options -> Add), and that one will power the ide.
7m
comment Strategies to compensate for lack of multi-document interface?
@RunnyKine it probably isn't very hard to tweak it to work on Windows, but I didn't have the time to do that. You can try running it on Windows, I just think the result would be rather ugly. One would need to adjust window sizes and such things. I will do that eventually, but no time right now.
42m
revised Strategies to compensate for lack of multi-document interface?
Added a note on single-kernel MIDE
45m
comment Strategies to compensate for lack of multi-document interface?
@billc Hope you will find it useful.
54m
revised Strategies to compensate for lack of multi-document interface?
added 263 characters in body
1h
answered Strategies to compensate for lack of multi-document interface?
1h
comment Strategies to compensate for lack of multi-document interface?
@billc It's not ready for github and pull requests precisely because it has the wrong architecture. Massive rewrites do happen. But, it works for what it has now, and I use it daily for managing notebooks for my work. So, rather than wait for some unspecified period of time, I can share it so that it can probably be used by others, with the understanding that it is as is. Once I rewrite it with a new architecture, hopefully it will start to be developed normally, using github and all the associated practices of collaborative development.
2h
comment Strategies to compensate for lack of multi-document interface?
I've been working on and off on the next gen. Mathematica IDE written entirely in Mathematica and using its FE, for the last 4 years. It has had a tabbed interface of the type you describe (but no tab drag or hot key-based switching support yet) for the last 2 years, and I regularly use it in my work. I am hesitant to recommend it yet, because it is somewhat buggy, awaiting massive rewrite, works so far only on OS X, and is missing features. But if you just need window manager with tabs in Mathematica, it may work for you. I could make it an answer offering it as is, for now.
May
2
comment how to apply Alternatives command to delete cases from a list?
You could use something like DeleteCases[newD, Alternatives@@Join[listF, Reverse[listF, {2}]]] (untested).
May
1
comment Is there any harm or benefit to Removing unneeded private symbols in packages?
Nothing to add to this, really. A great answer. +1.
May
1
comment Is there any harm or benefit to Removing unneeded private symbols in packages?
I would never do it, even with my own packages. You may break the package in very subtle ways, while the benefits are very questionable. I agree with others who suggested against it, particularly R.M. gave a great answer. I just wanted to emphasize that IMO one shouldn't do this, period.
Apr
28
comment How to make a replacement, provided an inner rule applies
Looks like a valid alternative. Personally I try to avoid side effects, but this particular code looks fine to me.
Apr
27
awarded  Good Answer
Apr
26
awarded  Good Answer
Apr
24
comment Core functions or operations that every aspiring Mathematica programmer should know?
Strange. I left a comment here after the question was asked, and don't remember deleting it, however it is no longer here.
Apr
23
comment Looking for “Longest Common Substring” solution
@RunnyKine Sounds good!
Apr
23
comment Looking for “Longest Common Substring” solution
@RunnyKine I guess it should be possible, and not too hard. I don't know C#, but I might be interested in writing such a reloader. Will add that to my project list. Problem is, I have lots of things there already, so can't say when I get time to look into it. You could try yourself, and actually, I've read somewhere that in C#, you can access compiler via an API, rather than command line, so this can be even simpler. Basically, all you'll need is to find a C# analogue of Java class path, so that you could add compiled C# class(es) and they will then be loaded.
Apr
19
comment How to match Association[]?
Use Verbatim, as @RunnyKine suggested. Since it does not prevent evaluation of parts of the pattern, you will then compare evaluated / constructed Association[] in your expression with a similarly evaluated Association[] inside the pattern. Or, much simpler, if you don't care whether or not association is empty, you could use _Association pattern, which is matched in both cases.
Apr
19
comment How to match Association[]?
The subtle point here is that Association[] evaluates to <||>, and even though the FullForms of the two are the same, SameQ on them gives False, because the constructor Association[] does a non-trivial job when evaluated, and the result of it is not a normal expression Association[], but a new atomic object. So, we have Unevaluated[Association[]] === Association[] producing False. Therefore, MatchQ[Association[], HoldPattern[Association[]]] gives False, while of course MatchQ[Association[], HoldPattern[Evaluate@Association[]]] gives True.
Apr
19
comment Is there research about the Mathematica programming paradigm?
@kirma Somehow I have a feeling that if the language only has interpreter(s), that isn't good enough in this context (PL research, and such). I thought about Python too, and it really doesn't compare to Haskell, ML / OCaml, Lisp / Scheme, or even C, in terms of PL research availability for it, although Python's situation is definitely much better than WL's. The PyPy folks had to introduce their own Python subset which can be statically compiled, and they have JIT, which is not quite the same as ahead of time compiler. And it's not just about being dynamic - Scheme and Lisp are dynamic too.