gpt4 book ai didi

elm - 在 elm 中对 case 表达式进行分组 (0.18)

转载 作者:行者123 更新时间:2023-12-02 20:39:40 26 4
gpt4 key购买 nike

elm (0.18) 有没有办法将一系列执行相同操作的 case 表达式组合在一起?

例如:

type Character
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc
| SnowWhite
| Queen


getKindOfCharacter : Character -> String
getKindOfCharacter character =
case character of
(Sleepy | Happy | Grumpy | Dopey | Sneezy | Bashful | Doc) ->
"Dwarf"
SnowWhite ->
"Hero"
Queen ->
"Villain"

最佳答案

不,但您可以按如下方式重构您的类型:

type Character
= Dwaft Dwarf
| SnowWhite
| Queen

type Dwarf
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc

getKindOfCharacter : Character -> String
getKindOfCharacter character =
case character of
Dwarf _ ->
"Dwarf"
SnowWhite ->
"Hero"
Queen ->
"Villain"

或者更好...

type Character
= Dwaft Dwarf
| Hero Hero
| Villain Villain

type Dwarf
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc

type Hero
= SnowWhite

type Villain
= Queen

那么您就不需要 getKindOfCharacter 函数,因为 Character 类型将提供相同的信息。

let 
hero : Character
hero = Hero SnowWhite

villain : Character
villain = Villain Queen

dwarf : Character
dwarf = Dwarf Dopey
in
...

关于elm - 在 elm 中对 case 表达式进行分组 (0.18),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260813/

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