Racket'ta çalışıyorum ama bildiğim kadarıyla bu genel olarak Şemadaki durumdur; Eğer bir varsaŞema/Racket'teki bir koşula dayalı olarak birçok şeyi pratik olarak nasıl tanımlarsınız?
(define x
(if condition
"do a backflip"
"do a barrel roll"))
Ama: Ben artık şöyle bir şeyler yapabileceğini Bu özel durumla Şimdi
(if condition
(define x "do a backflip")
(define x "do a barrel roll"))
: Eğer biz bir ifade bağlamında bir şeyler tanımlamaya çalışıyoruz çünkü böyle bir şey yapamaz yerine
(if condition
(begin (define x "do a backflip")
(define y "awesome")
(define z "shoot me"))
(begin (define x "do a barrel roll")
(define y "nice")
(define z "give me sweet release")))
biz
olsun, çünkü bu tanımlamaya farklı şeyler sürü gerçekten korkunç olur(define x
(if condition
"do a backflip"
"do a barrel roll"))
(define y
(if condition
"awesome"
"nice"))
(define z
(if condition
"shoot me"
"give me sweet release"))
Olduğu gibi DRY değil, biz sürekli test için condition
tekrarlıyoruz. Ve sonuç olarak, condition
için test etmek yerine other-condition
'u kontrol etmek istiyorsak, n
için n
arası değişiklik yapmak zorundayız. Bunu yapmanın daha iyi bir yolu var mı, eğer öyleyse: Nasıl?
Bu "tanım değerleri" üzerinden bunun avantajı ne olurdu? – Wysaard