# What is direct parameter assignment useful for?

**URL:** <https://racket.discourse.group/t/what-is-direct-parameter-assignment-useful-for/1047>\
**Category:** Questions & Answers\
**Created:** [June 2, 2022, 1:28am UTC](https://racket.discourse.group/t/what-is-direct-parameter-assignment-useful-for/1047 "2022-06-02T01:28:19Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)\
**Post date:** [June 4, 2022, 10:46am UTC](https://racket.discourse.group/t/what-is-direct-parameter-assignment-useful-for/1047/14 "2022-06-04T10:46:23Z")

</div>

> [@countvajhula](#):
>
> The [docs on command line parsing](https://docs.racket-lang.org/reference/Command-Line_Parsing.html#%28form._%28%28lib._racket%2Fcmdline..rkt%29._command-line%29%29) use parameters to hold the flag values. So maybe a good question is, why do the docs use parameters here (without parameterize)?

I've asked myself the same question. One possibility is that you can `parameterize` the setting in other places in the code, but that could be very brittle depending on how the parameter or even values derived from it are used in the code.

Another possibility could be that it's easier to write  
`(my-argument new-value)`  
than  
`(set! my-argument new-value)`.

On the other hand,  
`(define my-argument initial-value)`  
is easier to write than  
`(define my-argument (make-parameter initial-value))`

I guess the actual answer has to come from the person who wrote the `command-line` example. 🙂

---

_[View the full topic](https://racket.discourse.group/t/what-is-direct-parameter-assignment-useful-for/1047)._
