背景:我正在编写一个脚本语言解释器来测试一些实验性语言的想法。我要为内置类型编写核心标准方法(函数)集。其中一些方法需要直接与底层数据结构交互,并且必须使用底层语言编写(在我的例子中是 Haskell,但这对于这个问题并不重要)。如果我选择,其他可以用脚本语言本身编写。
问题:用底层语言或语言本身实现核心库函数的优点和缺点是什么?
示例:我的语言包含一个内置类型Array
s,其工作方式与您认为的一样——有序数据组合在一起。一个Array
实例(这是一种面向对象语言)具有方法inject
和。我已经在 Haskell 中实现了。我也可以用 Haskell 编写和,或者我可以使用我的语言编写它们。例如:map
each
inject
map
each
inject
def map(fn)
inject([]) do |acc,val|
acc << fn(val)
#end inject
#end def map
def each(fn)
inject(nil) do |acc,val|
fn val
#end inject
#end def each
我想知道每种选择的优缺点是什么?