Это звучит как что-то, что было бы лучше сделать как функцию с опцией, например
Options[myfunction,{Compiled->False}]
myfunction[x_,opts:OptionsPattern[]]:=
With[{comp= TrueQ[OptionValue[Compiled]]},
If[comp, compiledFunction[x], notcompiledFunction[x] ]]
(Локальная константа comp
в операторе With
не является строго необходимой для этого примера, но будет полезна, если ваш код вообще сложен, и вы используете это условие более одного раза.)
Я не рекомендую определять различные случаи функции внутри оператора If[]
. Вам было бы лучше использовать встроенные способности сопоставления с образцом в Mathematica. (См. Документацию здесь и особенно здесь .)
Некоторую полезную документацию по опциям в функциях можно найти здесь , здесь и здесь .