首页
学习
活动
专区
工具
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.5K20

    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%

    64610

    编程语言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和浏览器上。

    80810

    【译】教你用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)自取。

    73330

    逻辑式编程还有用吗?--“三维度”逻辑编程语言的设计(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

    5K20

    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#

    47220

    学习ChatGPT编程

    尽管ChatGPT可以生成代码回答编程问题,但它并没有相同水平的深入了解和灵活性。编程需要实际的编程技能,并且在软件开发和问题解决方面具有重要的应用。...在许多情况下,ChatGPT生成的代码可能不够高效、可靠安全。通过学习编程,我们可以理解和追踪代码的执行过程,并进行必要的调整和优化 人类和计算机谁更优秀?...1980 100 Prolog和SQL 1985 200 Perl和MATLAB 1990 400 Python和Ruby 1995 700 Java和JavaScript 2000 1,500 C#...、PHP和Visual Basic .NET 2005 2,500 Objective-C和Scala 2010 4,000 Go和Rust 2015 6,500 Swift和Kotlin 2020 9,000...最古老的功能性编程语言之一,强大的宏系统和简单的语法 人工智能和机器学习研究 Scheme Lisp的一种精简方言,简洁和优雅 教授编程概念的教育工具,因为它易于学习和理解 功能性编程语言是一种基于函数概念作为程序编写的基本构建块的编程语言类型

    25110
    领券