fish define command

Syntax

fish define s ...

Define a new FISH function. The function will be named s, and must be a valid symbol name. Tokens following are assumed to be arguments that the function will take. Please see FISH Scripting Reference and the FISH Tutorial.

From here until an end statement is found, FISH syntax is expected instead of standard command processing. The FISH code is parsed into a compressed format called pseudo-code, which is what is executed by the FISH runtime. Compilation errors are reported as the statements are processed.

The pseudo-code is considered part of the model state, and so is cleared on a model new, saved with model save, and recovered with model restore.

The function s will be created as a global symbol if one does not already exist. If it already exists then it will be tagged as a function and the code will be executed whenever values are retrieved from it. Any function already defined on s will be deleted and overwritten.

Usage Example

The following example illustrates how fish define can be used.

To define a simple FISH function fred that returns a value of 4.5:

fish define fred
   fred = 4.5
end

To define a FISH function that takes two arguments and returns the multiplied value

fish define george(a,b)
    george = a * b
end