哪些编程语言支持嵌套的函数定义?
例如:python中的嵌套函数
def FuncAsClass():
x=1 # data members
def setX(val): # setter methods
nonlocal x
x=val
def getX(): #getter
return(x)
def adder(): # arbitrary state-dependent method
total=0
for i in range(x+1):
total+=i
return total
# the interface offered by the class
interface ={"setX":setX, "getX":getX, "sum":adder }
return interface
答案 0 :(得分:2)
Wikipedia article有一个很好的总结:
基于ALGOL的语言,如ALGOL 68,Simula,Pascal,Modula-2, Modula-3,Oberon,Seed7和Ada。
Lisp的现代版本(带有 词法范围),如Scheme和Common Lisp。 ECMAScript中 (JavaScript和ActionScript)。
Scala(全力支持)
不同程度 支持脚本语言,如Ruby,Python和Perl (从版本6开始)。
标准C和C ++不支持嵌套函数,但是:
答案 1 :(得分:0)
很多......作为一个例子:球拍/计划。考虑一下:
#lang racket
(define (fn x y)
(define (minus x y)
(- x y))
(minus x y))