# Type and object in Racket

**URL:** <https://racket.discourse.group/t/type-and-object-in-racket/2091>\
**Category:** General\
**Created:** [July 12, 2023, 8:40am UTC](https://racket.discourse.group/t/type-and-object-in-racket/2091 "2023-07-12T08:40:33Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [July 16, 2023, 8:53am UTC](https://racket.discourse.group/t/type-and-object-in-racket/2091/21 "2023-07-16T08:53:18Z")

</div>

```scheme
#lang racket
(require flomat)

(define (build-matrix m n f)
  (for*/flomat m n
    ([i (in-range m)]
     [j (in-range m)])
    (f i j)))

(build-matrix 5 5 +)

```

---

<div class="post-metadata">

**Author:** ![benknoble](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/benknoble/32/16_2.png) [@benknoble](https://racket.discourse.group/u/benknoble)\
**Post date:** [July 16, 2023, 2:34pm UTC](https://racket.discourse.group/t/type-and-object-in-racket/2091/22 "2023-07-16T14:34:30Z")

</div>

I'm pretty sure one of those `in-range`s should be `n`, not `m` (but I don't know which).

---

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [July 16, 2023, 3:15pm UTC](https://racket.discourse.group/t/type-and-object-in-racket/2091/23 "2023-07-16T15:15:15Z")

</div>

You are right. I shouldn't have used a 5x5 as an example 🙂

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [July 16, 2023, 3:26pm UTC](https://racket.discourse.group/t/type-and-object-in-racket/2091/24 "2023-07-16T15:26:20Z")

</div>

i understand this function can replace the previous code:

```scheme
 (define-pointwise-unary uniform)
 (.uniform! (zeros {nc[{n + 1}]} {nc[n] + 1}))

```

sometimes i wrote function, and find later they exist in library ,for example this one (i haven't test and needs support for flomat with of srfi 151 for the line of cde : {v[i] \<- C[i]}):

```scheme
;; (define (matrix-column->vector C)
;; {lgC <+ (ncols C)}
;; {v <+ (make-vector lgC 0)}
;; (for ({i <+ 0} {i < lgC} {i <- i + 1})
;; {v[i] <- C[i]})
;; v)

```

is flomat-\>vector for column matrix.

[Previous page](https://racket.discourse.group/t/type-and-object-in-racket/2091.md?page=1)
