Я определяю функцию, которая принимает в качестве входных данных функцию, и я хочу указать ее в типе входных данных, например Operat [_? FunctionQ]: = ... Но в математике функции Q пока нет. Как мне получить это, кроме того, что вообще не укажу какой-либо тип.
Есть идеи?
О! Это: Проверить, является ли выражение функцией? может быть ответ, который я ищу. Я читаю дальше
Является ли предложенное там решение надежным?, Например:
FunctionQ[_Function | _InterpolatingFunction | _CompiledFunction] = True;
FunctionQ[f_Symbol] := Or[
DownValues[f] =!= {},
MemberQ[ Attributes[f], NumericFunction ]]
FunctionQ[_] = False;