首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从.NET/C#调用LISP或SCHEME

从.NET/C#调用LISP或SCHEME的方法有很多种,这里给出一种使用.NET Core和C# 8.0的方法。首先,我们需要安装一个名为LispInterpreter的NuGet包,这个包可以让我们在C#中运行LISP代码。

  1. 在Visual Studio中创建一个新的.NET Core控制台应用程序项目。
  2. 在项目中安装LispInterpreter包。
  3. 在项目中创建一个名为LispInterpreter的类,并添加以下代码:
代码语言:csharp
复制
using System;
using LispInterpreter;

namespace LispInterpreter
{
    public class LispInterpreter
    {
        public static object Eval(string expression)
        {
            var parser = new LispParser(expression);
            var ast = parser.Parse();
            var environment = new LispEnvironment();
            return ast.Eval(environment);
        }
    }
}
  1. 在主程序中调用LispInterpreter类的Eval方法,传入LISP表达式:
代码语言:csharp
复制
using System;

namespace LispInterpreterExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string lispExpression = "(+ 2 3)";
            object result = LispInterpreter.Eval(lispExpression);
            Console.WriteLine($"The result of '{lispExpression}' is: {result}");
        }
    }
}

这样,我们就可以在.NET/C#中调用LISP代码了。同样的方法也可以用于调用SCHEME代码,只需要安装相应的NuGet包并修改代码即可。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET混合开发解决方案12 网页JS调用C#方法访问WinFormWPF窗体

控件的导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法 .NET混合开发解决方案11 网页JS调用C#方法   在前一篇博客《.NET混合开发解决方案11 网页JS调用C...但是在企业级应用软件中业务需求可能更加复杂,如JS调用C#方法之后,需要访问宿主的窗体,设置窗体(WinForm、WPF、WinUI、Win32)中的控件等。...下面通过一个Demo来讲解如何实现JS调用C#方法。 业务场景:JS调用C#方法,传递三个参数,分别是num1、num2、message。...C#接收到参数后,调用WinFrom窗体中定义的方法,将num1与num2作为参数传入,并将计算结果显示在窗体控件上。 先看一下示例效果 下面详细介绍其实现步骤。...使用主机对象调用C#方法,由于调用过程是异步的,所以需要使用 await,方法定义前需要加上 async。 以上四步完成后即实现了JS访问窗体方法。

2.4K40
  • .NET连接SAP系统专题:C#调用RFC代码(三)

    本文就说明在C#中如何编写代码来调用SAP中的RFC函数获取数据。(Winform32)     首先需要引用两个NCO3.0的DLL,下载地址在文后。    ...= prd.Repository;             IRfcFunction companyBapi = repo.CreateFunction("ZRFC_MARA_INFO");   //调用函数名...结果如下: SAP中品号信息如下: 由此可见数据完全OK,调用成功。 程序在第一次载入的时候有点慢,在链接SAP和登陆。后续在下拉框变化的时候就立马显示出品名出来了,丝毫没有任何停顿。...第二次链接SAP的时候大概是不必在登陆了,SAP系统中已有登陆信息,运行T-CODE:SM04 红色框中这两个即是我们的RFC调用所留下的登录会话。...一旦我们的C#程序退出之后,这两个RFC也就退出了。 如果我们的C#程序是ASP.NET的话,页面关闭之后这个RFC登录信息都还在的。除非IIS关闭,否则只有等到SAP系统超时退出这两个登陆会话了。

    1.6K20

    C 语言荣获 2019 年度最佳编程语言称号

    紧随其后的是 C#(+2.1%)、Python(+1.4%)和 Swift(+0.6%)。 为什么 C 语言如此炙手可热呢?...2019 年度其他有趣的上榜者还有 Swift(第 15 名上升到第 9 名)和 Ruby(第 18 名上升到第 11 名)。...其他一些人们寄予厚望但在 2019 年却没有获得突破的语言情况如下:Rust 只上升了三个名次(第 33 名上升到第 30 名),Kotlin 则下降了 3 个名次(第 31 名下降到第 35 名)...,Jylia 甚至下降了 10 个名次(第 37 名下降到第 47 名),TypeScript 只上升了一个名次(第 49 名上升到第 48 名)。...5.349% +2.07% 6 5 Visual Basic .NET 5.287% -1.17% 7 6 JavaScript 2.451% -0.85% 8 8 PHP 2.405% -0.28%

    65610

    编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!

    Scheme - 1975 Scheme创建于1975年,是一种多范式编程语言,支持函数式和交互式编程。它是Lisp三种重要的变种之一,由Common Lisp和Clojure共同开发。...Ruby - 1995 由于对Smalltalk和Lisp的开发感到沮丧,Yukihiro Matsumoto1993年起开始在Emacs上设计Ruby语言,并于1995年发布了第一版。...C# - 2000 2000年,微软就Java语言与Sun公司发生争议,随后便创造了C#C#是一种被设计为在Microsoft.NET平台上开发的面向对象的编程语言,它是由C++和Java派生而来,使用了许多它们的通用特性和概念...C#也可以用来在ASP.NET平台上开发Web应用。C#课程自取。...Clojure是Lisp的三种主要方言之一。Clojure可以编译成Java字节码,JavaScript代码或者是.NET字节码,因此它可以运行在JVM、CLR和浏览器上。

    82610

    【译】教你用50种语言写Hello, World

    Scheme - 1975 Scheme创建于1975年,是一种多范式编程语言,支持函数式和交互式编程。它是Lisp三种重要的变种之一,由Common Lisp和Clojure共同开发。...Ruby - 1995 由于对Smalltalk和Lisp的开发感到沮丧,Yukihiro Matsumoto1993年起开始在Emacs上设计Ruby语言,并于1995年发布了第一版。...C# - 2000 2000年,微软就Java语言与Sun公司发生争议,随后便创造了C#C#是一种被设计为在Microsoft.NET平台上开发的面向对象的编程语言,它是由C++和Java派生而来,使用了许多它们的通用特性和概念...C#也可以用来在ASP.NET平台上开发Web应用。...C#课程(https://www.java67.com/2019/03/5-free-c-net-courses-to-learn-online.html)自取。

    74830

    逻辑式编程还有用吗?--“三维度”逻辑编程语言的设计(2)

    逻辑式编程基本被否定了,和函数式有同样问题--只能在简单静态环境,在复杂动态环境,造成的问题比要解决的问题还多。”...而函数式语言跟逻辑编程语言有同样问题这个说法更不对,函数式语言的鼻祖LISP至今还在,基于JVM的LISP方言Clojure还能常常出现在招聘信息中,还有比Common LISP更为简单的方言Scheme...我使用Chez Scheme编写了一个新冠病毒感染风险监测程序,可以点击我这篇文章《Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序” 》了解和下载运行这个Scheme程序。...此外,常用的函数式语言还有scala, erlang, F#, Haskell等,说到.NET就不能不提到F#,.NET 5.0将伴随C#9.0同步发布最新的F# 5.0,可见F#在软微开发语言中的重要地位...运用三维度理论,我们可以很容易的用一种非逻辑编程语言--C#来实现逻辑编程的范式,这样我们就能结合逻辑编程的有点以及.NET平台语言强大的功能,从而轻松的构建一个新的逻辑编程语言,尽管这只能称之为一种DSL

    5.1K20

    c#版本Openfeign】Net8 自带OpenFeign实现远程接口调用

    Net版本到现在已经出了7了,8也已经在预览版了,相信在一个半月就会正式发布,其中也有很多拭目以待的新功能了,不仅仅有Apm和Tap的结合,TaskToAscynResult,以及UnsafeAccessor...AutoClient新增的包的时候,好奇心的驱使下,我点进去看了一下,哇,官网终于出这玩意了,使用简单,根据特性,然后使用Sg来生成我们对应的实现从而我们只需要定义一个接口,打上特性,就可以生成一个对应的代理类,调用远程...Api接口,太令人心动,为此特地升级了VS,下载了Net8,体验新功能,接下来,我们就看看他的使用案例。...  下面这段代码,是我另一个项目接口的代码,可以看到,路由是Test,方法的路由是TestPost,返回了一个字符串true,因为,在使用AutoClient的时候,返回类型必须是引用类型,接下来,我们调用一下测试看看...我们可以看到返回了我们在另一个项目中返回的结果,true,同时,AutoClient还支持Get,Patch,Delete,Get,Put,Body(标记是在Body中),Header,Query等诸多特性,就是一个c#

    50320
    领券