문제

많은 분들이 지적하셨듯이 이 질문, Lisp는 주로 학습 경험으로 사용됩니다.그럼에도 불구하고 어떻게든 Lisp 알고리즘을 사용하고 이를 C# 프로그램과 결합할 수 있다면 좋을 것입니다.대학에서 내 교수들은 프로그램에서 내 Lisp 루틴을 사용하는 방법을 나에게 결코 말해주지 못했습니다(아니요, Lisp에서 GUI를 작성하지 마세요. 감사합니다).그러면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

Lisp의 다음 .Net 구현을 사용해 보세요.

Ironscheme은 Microsoft DLR을 기반으로 R6RS 준수 체계 구현을 목표로합니다.

l Sharp .NET은 .NET를위한 강력한 LISP와 같은 스크립팅 언어입니다.ARC와 유사한 LISP 방언을 사용하지만 풍부한 라이브러리 세트를 제공하는 .NET 프레임 워크와 밀접하게 통합됩니다.

다른 팁

클로저 Lisp-1은 다음과 같습니다. 컴파일된 즉석에서 Java 바이트코드로 변환하여 매우 우수한 런타임 성능을 제공합니다.Clojure를 사용하고 다음을 사용하여 .NET 어셈블리로 크로스 컴파일할 수 있습니다. IKVMikvmc입니다.물론 .NET에서 사용할 때 Clojure는 .NET IL을 생성하여 JVM에서 사용할 때 기대할 수 있는 것과 동일한 종류의 컴파일 코드 성능을 제공합니다.

단순히 루틴만 사용하려는 경우 .NET에서 Lisp 표현식을 사용할 수 있는 LSharp를 사용해 볼 수 있습니다.

http://www.lsharp.org/

다른 방법(Lisp의 .NET 사용)은 RDNZL입니다.

http://www.weitz.de/rdnzl/

.Net 1.1 SDK에는 LISP 컴파일러 예제가 포함되어 있습니다.SDK\v1.1 ool Developers Guide\Samples\clisp를 참조하세요.

나는 이것이 정말 오래된 질문이라는 것을 알고 있습니다.하지만 나는 내 경험과 관점에서 대답을 제공하려고 노력할 것입니다.

Scheme/Lisp의 순수함, 우아함, 단순함을 사랑하는 우리 같은 사람들에게 이것이 실제 제작에서 어떻게 매우 유용할 수 있는지에 대한 격려와 영감을 주기를 바랍니다 :)

저는 최근에 Scheme과 같은 통역사를 오픈소스로 공개했습니다. 책략, C#으로 작성됨(~1500줄의 코드)동기와 유용성은 다음과 같습니다.

너무 자세히 설명하지 않고 다른 개발자/데이터 과학자가 플러그 앤 플레이할 수 있는 요청 처리 논리를 원하는 웹 API 서버를 구축하고 있었습니다.여기서는 우려 사항을 분리해야 한다는 분명한 요구가 있었습니다. 서버는 요청 처리 논리에 크게 신경 쓰지 않지만 어떤 요청을 처리할 수 있는지, 어디에서 찾을 수 있는지 알아야 합니다. 핸들러의 논리.

따라서 서버 애플리케이션에 핸들러 구현을 배치하는 대신 서버는 몇 가지 기준과 논리를 기반으로 함께 연결되어 재사용 가능한 "블록"만 제공합니다. 관로, 즉 다음을 통해 정의된 핸들러 구성.우리는 그러한 파이프라인을 설명하기 위해 JSON/XML을 시도했고 곧 다음과 같은 사실을 깨달았습니다. 나는 본질적으로 추상 구문 트리 파서를 구축하고 있었습니다..

이것이 경량의 s-expression 기반 작은 언어에 대한 요구라는 것을 깨달았을 때였습니다.그래서 임베디드를 구현했습니다. 책략 통역사.

예제 명령 처리 응용 프로그램을 넣었습니다. 여기, 위에서 언급한 웹 서버 디자인 철학의 핵심을 담고 있습니다.다음과 같이 작동합니다.

  1. C#에서 구현 된 일부 기능으로 임베디드 스키미 통역사를 확장합니다.

  2. 그것은 발견한다 .ss 구현 된 기능을 사용하여 명령 처리 파이프 라인을 정의하는 스크립트.

  3. 서버는 기호를 찾아 스크립트에서 파이프 라인을 찾아서 유지합니다. EXECUTE 다음 유형이어야 합니다. Func<object, object>.

  4. 명령 요청이 들어 오면 해당 명령 프로세서 ( EXECUTE) 및 결과에 대한 응답.

마지막으로 다음은 이 TCP 명령 서버를 통해 온라인 맨페이지 조회를 제공하는 복잡한 예제 스크립트입니다.

명령 서버가 이 스크립트를 로드하면 TCP 클라이언트가 명령을 실행할 수 있습니다. man <unix_command> 서버에:

$ ncat 127.0.0.1 8080

man ls

LS(1)                   FreeBSD General Commands Manual                  LS(1)

NAME
     ls -- list directory contents

SYNOPSIS
     ls [--libxo] [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1,] [-D format]
        [file ...]

DESCRIPTION
     For each operand that names a file of a type other than directory, ls
     displays its name as well as any requested, associated information.  For
     each operand that names a file of type directory, ls displays the names
     of files contained within that directory, as well as any requested,

아마도 L#을 살펴봐야 할 것입니다.그것이 당신이 찾고 있는 것인지는 모르겠지만(대학 이후로 Lisp를 접해본 적이 없습니다) 확인해 볼 가치가 있을 것입니다.

http://www.lsharp.org/

도 있습니다 도트리스프.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top