參數 (程式設計)
更準確地說，參數模式或參數共有三種類型：輸入參數（入參）、輸出參數（出參）、輸入輸出參數（出入參），這些參數往往使用codice_52、codice_53、codice_54來進行表示。輸入引數輸入引數（針對輸入參數的引數）必須是一個值，例如已經被初始化了的變數或常值，而且不能重新定義獲分配它。輸出引數必須是可分配變數，但不必初始化而且任何現有值均不可存取輸入值，執行函數後必須分配一個值。輸入輸出引數必須是已初始化了的可分配變數，並且可以選擇給其分配一個值。確切的要求和執行情況因語言而異，例如在Ada 83中，即使分配後也只能分配輸出參數（在Ada 95中刪除了該參數，以消除對輔助累加器變量的需要）。這有些類似於值的概念，也就是左值（，具有值）、右值（，可分配）以及左右值（，具有值且可分配），不過這些術語在C語言中有特殊含意。
ML语言
凭借类型推论编译器能推导出，codice_9接受整数codice_10作为实际参数，则形式参数codice_11也是整数类型codice_3，而codice_13的结果是整数codice_14，则函数codice_9的结果也是整数类型。函数codice_9接受一个整数的形式参数并返回一个整数结果，它作为一个整体从而有着“从整数到整数的函数”类型codice_17。函数及其形式参数的"类型"还可以用类型标注（annotation）来描述，使用codice_18表示法，它可以被读作表达式codice_19有类型codice_20，它是可选也可忽略的。使用类型标注，这个例子可重写为如下： fun fac 0 = 1 这个函数还依赖于模式匹配，这是ML语言的重要部份。注意函数形式参数不必须在圆括号内但要用空格分隔。当一个函数的实际参数是codice_10，它将返回整数codice_14。对于所有其他情况，尝试第二行。这是一个递归，并且再次执行这个函数直到达到基础情况。它可以使用codice_23表达式重写为： fun fac n = case n  这里codice_23介入了模式和对应表达式的序列。它还可以重写为将标识符绑定到lambda函数： val rec fac = 这里的关键字codice_25介入了标识符到值的绑定，codice_26介入了匿名函数的定义，它可以用在codice_27的位置上，但使用codice_28算符而非codice_5。绑定到递归的匿名函数需要使用codice_30关键字来指示。