Parameters 球拍传球参数

Parameters 球拍传球参数,parameters,scheme,lisp,racket,Parameters,Scheme,Lisp,Racket,我在一个没有经验的地方工作 我要用C写我想写的东西: void function(int array[]){ printf("%i total has been rolled from rolls %i and %i.\n", array[0], array[1], array[2]); } 正如您所看到的,这只是一个基本函数,它将打印出我要传递给函数的列表的值。我不知道如何在Racket中传递参数(这是正确的术语吗?)。我正在尝试以以下格式传递列表: (sum num1 num2)或

我在一个没有经验的地方工作

我要用C写我想写的东西:

void function(int array[]){
    printf("%i total has been rolled from rolls %i and %i.\n", array[0], array[1], array[2]);
}
正如您所看到的,这只是一个基本函数,它将打印出我要传递给函数的列表的值。我不知道如何在Racket中传递参数(这是正确的术语吗?)。我正在尝试以以下格式传递列表: (sum num1 num2)或者我可以把它作为((sum)num1 num2)传递,如果这样更容易的话

这是我目前的职能:

(define (throw-value) 
    (list (list(list-sum (dice-rolls))) (car(dice-rolls)) (car(dice-rolls))))
掷骰子的地方是我想要使用的参数列表

有什么建议吗?代码段将是伟大的!
谢谢。

回答如何在Racket中传递参数的问题-只需在函数名后声明它们,并小心使用括号(代码中有几个错误的括号)。我相信你的目标是这样的:

(define (throw-value dice-rolls)
  (list (list-sum dice-rolls) (car dice-rolls) (car dice-rolls)))
(define (function vec)
  (printf "~a total has been rolled from rolls ~a and ~a.~n"
          (vector-ref vec 0)
          (vector-ref vec 1)
          (vector-ref vec 2)))

(define vec (vector 1 2 3)) ; `vec` is a vector
(function vec)
=> 1 total has been rolled from rolls 2 and 3.
上面将以
(sum num1 num2)
的格式返回一个列表,请注意
num1
num2
将是相同的数字,因为在这两种情况下,您都使用列表的第一个元素。现在,对于问题的其余部分,问题中C代码的直接翻译如下:

(define (throw-value dice-rolls)
  (list (list-sum dice-rolls) (car dice-rolls) (car dice-rolls)))
(define (function vec)
  (printf "~a total has been rolled from rolls ~a and ~a.~n"
          (vector-ref vec 0)
          (vector-ref vec 1)
          (vector-ref vec 2)))

(define vec (vector 1 2 3)) ; `vec` is a vector
(function vec)
=> 1 total has been rolled from rolls 2 and 3.
尽管链表是基于Lisp的编程语言中的标准数据结构,但每当需要高效地访问给定索引的数据时,最好使用如上所示的。如果出于某种原因您确实必须使用列表,您可以这样做,尽管效率较低(链接列表未针对基于索引的访问进行优化):


回答如何在Racket中传递参数的问题-只需在函数名后声明它们,并小心使用括号(代码中有几个错误的括号)。我相信你的目标是这样的:

(define (throw-value dice-rolls)
  (list (list-sum dice-rolls) (car dice-rolls) (car dice-rolls)))
(define (function vec)
  (printf "~a total has been rolled from rolls ~a and ~a.~n"
          (vector-ref vec 0)
          (vector-ref vec 1)
          (vector-ref vec 2)))

(define vec (vector 1 2 3)) ; `vec` is a vector
(function vec)
=> 1 total has been rolled from rolls 2 and 3.
上面将以
(sum num1 num2)
的格式返回一个列表,请注意
num1
num2
将是相同的数字,因为在这两种情况下,您都使用列表的第一个元素。现在,对于问题的其余部分,问题中C代码的直接翻译如下:

(define (throw-value dice-rolls)
  (list (list-sum dice-rolls) (car dice-rolls) (car dice-rolls)))
(define (function vec)
  (printf "~a total has been rolled from rolls ~a and ~a.~n"
          (vector-ref vec 0)
          (vector-ref vec 1)
          (vector-ref vec 2)))

(define vec (vector 1 2 3)) ; `vec` is a vector
(function vec)
=> 1 total has been rolled from rolls 2 and 3.
尽管链表是基于Lisp的编程语言中的标准数据结构,但每当需要高效地访问给定索引的数据时,最好使用如上所示的。如果出于某种原因您确实必须使用列表,您可以这样做,尽管效率较低(链接列表未针对基于索引的访问进行优化):

既然你在用#!拍而不拍,何不用

既然你在用#!拍而不拍,何不用


谢谢你,奥斯卡,这太棒了!一如既往,这是我的荣幸;)谢谢你,奥斯卡,这太棒了!一如既往,这是我的荣幸;)