阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

在 Lisp 中使用 RDNZL 调用.NET 类库

  • 2007-08-23
  • 本文字数:731 字

    阅读完需:约 2 分钟

长期以来对 Lisp 的诟病之一就是 Lisp 缺乏高质量的类库。尽管有不少人在争论这个观点是否正确,但是能够访问.NET 平台下不计其数的高质量类库,确实能给人们带来很多价值。

RDNZL 为 Windows 平台下的 Lisp 开发人员提供了一个访问.NET 类库的途径。尽管目前它还不能支持其它的 CLR 实现,比如说 Mono,但是 RDNZL 的维护人员正在接纳这些平台的补丁。

在 Lisp 一方,这套类库支持 Corman Common List、ECL、Allegro 和 LispWorks。SBCL 和 GNU CLISP 的移植版目前尚在开发中。

RDNZL 完成诸如对象创建、.NET 风格数组、枚举类型、装箱(Boxing)、.NET/Lisp 类型转换和起来类似的基础工作,相对来说容易不少,而方法调用可以用两种方式完成。最为容易的方式是使用 Lisp 函数调用、属性或者字段。这些方法使用反射来调用下面的.NET 方法。如果希望避免反射,并使调用时间减半,开发人员可以使用define-rdnzl-call来为相应函数创建一个 Lisp 包装器。

使用这个类库对性能最严重的影响就是对所传送数据的重新编组的时间损耗。出于这一原因,控制跨平台方法调用的数量是更可取的,而人们尤其应当注意避免在 Lisp 中的一个紧凑循环中频繁调用.NET 代码。

由于要为 COM 类库创建 CLR 可调用的包装器(CLR Callable Wrapper)是件易如反掌的事情,RDNZL 也为开发人员提供了调用 Windows 平台上浩如烟海的 COM 类库的途径。在链接页面中,有不少示例,其中就有一个从 Lisp 中通过 Microsoft Office 自动化调用 Excel 对象的例子。

事件处理器和其它的委托(delegate)可以通过向委托的构造方法传入一个 Lisp 闭包的方式创建。不过要这样做必须小心从事,因为这样可能会创建出一个循环引用,从而扰乱 Lisp 和.NET 的垃圾收集器。

查看英文原文: Call .NET Libraries from Lisp Using RDNZL

2007-08-23 23:003082
用户头像

发布了 117 篇内容, 共 14.9 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

二本毕业,靠学姐帮助混进大厂,女朋友却离我而去

程序员晚枫

程序员 女朋友 大厂 校招

当TO B客户说“没有预算”时,怎么卖SaaS|SaaStr观点

B Impact

使用NineData构建任意时间点(PITR)数据恢复能力

NineData

开发者 数据恢复 dba 数据备份 全量同步

MSE 诊断利器上线

阿里巴巴云原生

阿里云 云原生 微服务引擎

适合在公司内网部署的项目管理软件有哪些?

PingCode

项目管理 项目管理软件

稳中求进的转折之年,企业如何重启“增长飞轮”?

脑极体

京东

读者1群辛辣反馈,关于《中国式SaaS有没有希望(能赚钱吗)?|内行深度PK ​》

B Impact

模块一作业

只因

架构训练营

什么是大前端技术?微信小程序用户占比达25%

没有用户名丶

【MapStruct】引入MapStruct之后,项目启动java:找不到符号

No8g攻城狮

springboot 异常处理

瓴羊Quick BI怎么样,BI工具数据看板见分晓!

小偏执o

3DCAT+一汽奥迪:共建线上个性化订车实时云渲染方案

3DCAT实时渲染

实时云渲染 实时渲染云 3D实时云渲染

轻量级、简化、QDSAA—特斯拉 IT风格曝光160p Investor Day完整PPT

B Impact

架构实战营模块三作业

null

帆软、永洪BI、瓴羊Quick BI等工具,都有哪些特点呢?

小偏执o

【实践篇】教你玩转微服务--基于DDD的微服务架构落地实践之路

京东科技开发者

架构 后端 企业号 3 月 PK 榜 微服务器

流量控制--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 流量控制 企业号 3 月 PK 榜

「降本」有可能,「增效」不确定

Java 架构 程序人生 职场

matlab实现形态学图像处理

timerring

matlab 图像处理

TCL 拥抱云原生,实现 IT 成本治理优化

阿里巴巴云原生

阿里云 云原生 IT IT治理

字节跳动新一代云固件Cloud Firmware 2.0来啦

字节跳动技术范儿

云计算 Linux OCP

IoTLink 版本更新 v1.8.0

山东云则信息科技

物联网平台 物联网 springboot

配运基础数据缓存瘦身实践

京东科技开发者

数据库 redis 缓存 key 企业号 3 月 PK 榜

三天吃透消息队列面试八股文

程序员大彬

Java 消息队列

规模化企业BI分析用哪家?帆软、永洪BI、瓴羊Quick BI深度对比

巷子

复杂业务架构设计方法论的思考

FluttySage

架构

Terraform 新手村指南,萌新必读!

SEAL安全

Terraform 企业号 3 月 PK 榜

ListView的数据更新问题

智趣匠

ListView 数据更新 demo源码

Chrome 无魔法使用新必应(New Bing)聊天机器人

kcodez

chrome ChatGPT newbing 新必应

基于声网 Flutter SDK 实现多人视频通话

声网

flutter RTC RTE 视频通话

自动化离线交付在云原生的应用和思考

京东科技开发者

云原生 离线 企业号 3 月 PK 榜 自动化交付

在Lisp中使用RDNZL调用.NET类库_.NET_Jonathan Allen_InfoQ精选文章