2016-03-23 7 views
-1
;; loads a board from the given file 

;; it expects the board to be in the format of a single S-expression: 

;; a list of nine lists, each containing 9 numbers 


    (defun get-board-from-file file 
     (let ((in (open file :if-does-not-exist nil))) 
     (when in (return-from get-board-from-file (read in))) 
     (when (not in) (format t "~%Unable to open file ~A" file)) 
     ) 
    ) 

これは、sudokuソルバーのソルトトンの一部です。このlispコードのラケット翻訳は何ですか?

+1

あなたはラケットで何を試しましたか?あなたの翻訳の特定のものが機能していないのですか? –

+0

ラケットはまったく分かりません。私は前に働いていたLispコードの小さな翻訳を通してそれを学ぼうとしていました。 – McFiddlyWiddly

+3

ようこそStackOverflowへ!最初に亀裂をつけ、何を思いついたかを示してから、あなたが持っている特定の障害を乗り越えるのを助けることが奨励されます。一般的に、人々は単にコードを翻訳するだけではありません。 –

答えて

1

次のことを試してみてください、それが問題のLispコードの機能と同等ですが、ラケットで書かれた:

(define (get-board-from-file file) 
    (with-handlers ([exn:fail:filesystem? 
        (lambda (exn) (printf "~%Unable to open file ~A" file))]) 
    (call-with-input-file file 
     (lambda (in) (read in))))) 

上記のコードは、ファイルが存在しない場合に例外を処理し、それを確認しますファイルが読み込まれた後にポートが閉じられます。

関連する問題