Stanford nlp 在Rascal中使用外语API?
有没有办法在Rascal中调用外语API?特别是,我一直在考虑具有Java API的应用程序。Rascal具有出色的Java API。本质上,外部函数定义为一个普通的Rascal函数,前缀为关键字Stanford nlp 在Rascal中使用外语API?,stanford-nlp,rascal,Stanford Nlp,Rascal,有没有办法在Rascal中调用外语API?特别是,我一直在考虑具有Java API的应用程序。Rascal具有出色的Java API。本质上,外部函数定义为一个普通的Rascal函数,前缀为关键字java和一个属性javaClass,该属性定义了实现该函数的类 以Lists上的size函数为例。在Rascal的列表中模块大小定义如下: @javaClass{org.rascalmpl.library.Prelude} public java int size(list[&T] lst);
java
和一个属性javaClass
,该属性定义了实现该函数的类
以List
s上的size
函数为例。在Rascal的列表中
模块大小
定义如下:
@javaClass{org.rascalmpl.library.Prelude}
public java int size(list[&T] lst);
在java类org.rascalmpl.library.Prelude
中,方法size
实现如下:
public IValue size(IList lst)
{
return values.integer(lst.length());
}
请注意,所有Rascal值都实现为(不可变)IValue
s,并且一些封送是不可避免的
最后一点注意:与NLP库接口非常有趣(实际上在我们的清单上),但要注意保持Rascal的不变数据和大部分功能解决方案的精神。在为这样的库设计Rascal API时,必须考虑到这一点