gpt4 book ai didi

arrays - Scheme 语言中的 3D 数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:35 25 4
gpt4 key购买 nike

  • 我知道如何使用不同的命令式语言(如 c、c++ 等)处理 2D 和 3D 数组,但是
  • 我是函数式编程语言的新手。我在工作现在在 Scheme Language 中,这是 Lisp 的一种方言。我本来打算在 Scheme 语言中使用 3D 数组,了解 3D 数组在函数式编程语言(特别是 Scheme)中的工作原理。我搜索过但没有找到任何有用的资源来工作。比如 https://docs.racket-lang.org/srfi/srfi-std/srfi-25.html
  • Scheme 中的 3D 数组示例将不胜感激。

最佳答案

这是一个使用 Racket 向量的例子:

#lang racket

;; Dimension sizes
(define x-size 10)
(define y-size 10)
(define z-size 10)

;; Create a 3D vector with a default value of 1
(define my-3D-vector
(make-vector x-size (make-vector y-size (make-vector z-size 1))))

;; Returns the element in slot (x-pos, y-pos, z-pos) of 3D-vec.
;; The first slot is (0,0,0) and the last slot is
;; (x-size - 1, y-size - 1, z-size - 1)
(define (3D-vector-ref 3D-vec x-pos y-pos z-pos)
(vector-ref (vector-ref (vector-ref 3D-vec x-pos) y-pos) z-pos))

;; Updates the slot (x-pos, y-pos, z-pos) of 3D-vec to contain v
(define (3D-vector-set! 3D-vec x-pos y-pos z-pos v)
(vector-set! (vector-ref (vector-ref 3D-vec x-pos) y-pos) z-pos v))

关于arrays - Scheme 语言中的 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47432309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com