朱莉娅特别具有功能定义吗?如果是,它的BNF是什么?
例如,它具有带BNF的函数声明和函数调用
{{1}}
答案 0 :(得分:1)
正如Matt B.在评论中提到的,Julia语法不是无上下文的。
如果<...>
是有效的函数调用,那么通常以下是有效的方法定义:
function <...>; (body); end
<...> = (body)
此外,允许在函数调用中添加返回类型注释:
function <...>::ReturnType; (body); end
<...>::ReturnType = (body)
对于短格式和长格式,也允许使用任意数量的where
子句,而不是返回类型:
function <...>::ReturnType where T; (body); end
(<...>::ReturnType) where S = (body)
function <...> where T where S; (body); end
<...> where {S, T} = (body)
短格式和长格式都支持某些限定符:
global function <...>; (body); end
local <...> = (body)
请注意,函数调用本身可以有多种形式;例如,每个都是有效的:
x ← y = x + y
function (x ← y)::Int; 10; end