2016-04-08 36 views
0

私はschemeで自分のコードを実装するためにDrRacketを使用しています。私はこの言語では新しく、私は宿題にいくつかの助けが必要です。私の先生はコンソールから関数を呼びたいと思っています。私はその名前で呼び出すことを望ましくありません。 Scheme - 名前のない関数呼び出し

この

が許可されていません=>(関数名「ジョン(X PCF F G K:4:1))

代わりにその表記を使用して、私は私を呼び出す必要があります機能はアウトの名前です。

この

は彼女が何を望んでいる=>( '・ジョン(X PCF F G K:4:1))

は名前とコールせずに関数を定義する方法がありますそれ?私はインターネットで多くを検索しましたが、解決策を見つけることができませんでした。

+0

は、彼女が本当に望んでいるあなたの先生をして下さい。 – leppie

+0

( 'John(X pc F z C b Y h 1 2 3 4::)) –

答えて

3

あなたの例はあまり意味がありません。 2番目のスニペットはパラメータの一覧です。いくつかの点実際の手順を渡す必要があります。

(define (square x) 
    (* x x)) 

(square 4) 
=> 16 

これに相当します:

((lambda (x) (* x x)) 4) ; look ma, no name! 
=> 16 

「名前のない関数を呼び出す」ための一つの選択肢は、これは、例えば...匿名の手続きであるlambda表現を、使用することですさらに詳細な情報については、lambdaで再帰プロシージャを定義することもできます。

のコメントを読んだ後EDIT

- あなたは、単に関数にパラメータのリストを渡す必要がある場合は、これを使用する:

(apply function-name list-of-parameters) 
+0

」の形式でパスワード要求を処理する必要があります。システムは、パスワードの要求を (X pc F z C b Y h 1 2 3 4::))これは彼女が望むものです。そして、どのように関数のパラメータリストを渡すのですか? –

+1

先生が求めていたことを完全に誤解していることに注目してください。リスト内のパラメータを受け取った場合は、 '(関数名のリストをパラメータに適用する)'のように関数を呼び出すことができます。あなたの先生が求めるものは、機能の名前が使用できないことを決して意味するものではありません。 –

+0

ええ、私はそれを誤解していることを知っていました。パラメータのリストが役立つだろう、タイ –

関連する問題