2016-12-15 15 views
0

私はLispを学びたいと思っています。私はWindows 10 PCにGNU CLISP 2.49をダウンロードしました。すでにファイルにいくつかのコードを書きましたが、(load "example.lisp")コマンドを使ってCLISP端末からロードします。clispのファイル読み込みに問題があります

このようにファイルを置く必要がありますか?

C:\clisp-2.49にclispをインストールしました。

答えて

3

あなたはload機能のためにドキュメントを開始する必要があり、ページの下部には、あなたに答えを与える:

変数CUSTOM:*LOAD-PATHS*。変数CUSTOM:*LOAD-PATHS*には、LOAD、REQUIRE、COMPILE-FILE、およびLOAD-LOGICAL-PATHNAME-TRANSLATIONSによって、指定されたディレクトリまたはカレントディレクトリに加えて、ファイルが検索されるディレクトリのリストが含まれます。

だから、あなたは変数custom:*load-paths*を調べる必要があり、そこにディレクトリを追加します。

(pushnew #p"c:/home/lisp/" custom:*load-paths* :test #'equalp) 

か、あなたのソースが置かれているディレクトリにclispを実行することができます。

PS。あなたは今私に1 zorkmidを負っています。 :-)

+0

Hey Samさん、このユーザーがSourceforgeから 'clisp-2.49-win32-mingw-ming-big.exe'を使用している可能性がありますか?それは私に思い出させます、これを見てください:http://www.kylheku.com/cygnal/友人は友人がMingGWを使用させません。 :) – Kaz

2

sdsの優れた答えに加えて、ここはWindowsの視点です。

あなたが特定の「現在の作業ディレクトリ」であることが明らかになりますので、WindowsやUnixのコマンドライン環境では、あなたは、この問題に遭遇していないでしょうが。

C:\Users\me\lisp_project> clisp -q 
[1]> (load "example.lisp") 

です相対パスを使用してファイルをロードすると、このディレクトリからの相対パスになります。上記のシナリオでは、ファイルC:\Users\me\lisp_project\example.lispがロードされている場合(誰かが現在の作業ディレクトリを参照しないようにcustom:*load-paths*を再設定しない限り)、明らかです。

WindowsエクスプローラのGUIを使用してプロセスを開始すると、現在の作業ディレクトリが残っています。 .exeファイルを起動してプロセスを開始すると、その作業ディレクトリはそのディレクトリ.exeが存在するディレクトリになります。

ただし、ショートカットで実行可能ファイルを起動すると、現在の作業ディレクトリはショートカットのプロパティによって決まります。これを編集することができます:ショートカットを右クリックし、 "Start in"ディレクトリを任意のものに変更します。

つまり、clisp.exeへのショートカットを作成し、作業中のフォルダにそのショートカットを配置し、そのフォルダから「開始」することができます。

このアプローチは、CLISPのcustom:*load-paths*が洗練されていないものを含め、どの言語インタープリタでも機能するはずです。

関連する問題