I have written a Mathematica package on game theory (containing functions that tests whether a game is perfect recall, finds optimal strategies for a player in a game, etc.) and would like people to be able to use it (execute its functions). However, I don't want people to be able to analyze how the algorithms work. Is there a way (does Mathematica have the feature or have someone made a program) to obfuscate Mathematica functions so that a function is translated to another function that works exactly the same in terms of input-output but is completely unreadable? I don't need to have the obfuscated function be translatable back to the original function (using a secret keyword, as in encryption-decryption scheme), because I have the original function saved privately anyway.
As a comparison, Maple 2018 has this (new) feature: https://www.maplesoft.com/products/maple/new_features/Maple2018/EncryptedProcedures.aspx
Encode
? $\endgroup$ – xzczd Jun 27 '18 at 17:19ReadProtected
attribute, but there isn't a way to hide theDownValues
from users. $\endgroup$ – Jason B. Jun 27 '18 at 17:27Locked
along withReadProtected
no definitions can be read. $\endgroup$ – b3m2a1 Jun 27 '18 at 19:02