1

I have run into the symbol

FE`None

multiple times. What is this symbol, and what is it designed to indicate? All I could find is that FE indicates the front-end, but it's unfortunately a very Ungoogleable term. I believe that it's not something I should ever "see" on the front, but I'm guessing it represents some sort of display element. Perhaps "this object is un-representable to the front end" or something like?

To be clear, I'm not asking for aid in fixing my program so as to not produce this output. This is a question about the definition of the symbol, out of purely intellectual curiosity.

Edit: After a long while debugging the application, I've managed to reduce the problematic code that caused this happen. See, it was doing some fuzzy logic computations, and various computations were being represented using If statements. For instance If[True,a,b] evaluates to a always, then If[var,a,b] could be used to represent a fuzzy mixture of a and b. (This was not my design decision.) Then the computations were implemented as different overloads of If. Naturally, this meant Unprotecting If as well.

Through a chain of some slightly-off Holds and Evaluates, confusing = and :=, there was some code that ended up running under certain circumstances to evaluate to:

Unprotect[If];
Unprotect[If];
If[True,a_,b_] := If[RandomReal[] > 0.5,a,b];

I think it's pretty obvious how this could could lead to some weird problems down the line. As a minimal case, run the above, followed by If[True,1,2]. I tested on a few different versions of Mathematica on different machines, it seems to consistently produce 2, with a "Full output could not be displayed" warning. Pressing "Show full output" 3 times then waiting 15 minutes caused the output to re-render as "FE`None".

Alex Meiburg
  • 497
  • 2
  • 12
  • 1
    I doubt this is answerable unless someone happens to have experienced the exact same problem. Can you provide any more information about your application? – Mr.Wizard Jul 19 '16 at 07:14
  • Ah, it's more me just kind of playing around / messing with the environment a bit, to learn what it does. I don't expect help with what steps to take it counteract it in my case, I'd just like to know what it means. In the same sense that if I asked "what is NaN?" I wouldn't expect someone to tell me whether it was division by 0 or Infinity-Infinity... but I could expect them to tell me what a NaN is. – Alex Meiburg Jul 19 '16 at 07:17
  • 3
    FE` Symbols are used by the Front End as part of its normal operations. (e.g. (29244)) Why one is "leaking" out to a returned evaluation I cannot say. – Mr.Wizard Jul 19 '16 at 07:22
  • Closed? :/ But I'm not asking for help in fixing code. I'm just asking for the definition of a symbol (that happens to be produced by an error in my case). I amended the question to make this clear. – Alex Meiburg Jul 19 '16 at 17:56
  • 2
    Can you add some code that returns FE`None? – Karsten7 Jul 19 '16 at 18:07
  • 3
    The Symbol has no definition; it is simply None in the Front End context. The curiosity about in my mind seems firmly centered on why this was returned by an evaluation and we still do not have even a description of the code you were running. This is why I joined three other longstanding members in voting to close. – Mr.Wizard Jul 19 '16 at 18:24
  • 1
    @Mr.Wizard My random guess, FWIW, is that FE`None works like System`None in certain FE` functions, and it's in the FE` context for security reasons. I agree it would be nice to have code to reproduce its top-level appearance. – Michael E2 Jul 19 '16 at 18:57
  • I'll work on creating a minimal example, then. Thanks for your info so far! – Alex Meiburg Jul 19 '16 at 19:00
  • I added reproducing code. You won't like it though :( – Alex Meiburg Jul 20 '16 at 06:12
  • 1
    Did you know that If[] has a fourth argument? – J. M.'s missing motivation Jul 20 '16 at 08:05
  • Yes, although that would not have ended up relevant for the work we were doing. With the patterns we meant to run, that shouldn't be important either (since we only consider 3-argument uses). – Alex Meiburg Jul 20 '16 at 08:22

0 Answers0