gpt4 book ai didi

haskell - 带有模板 haskell 的多个函数定义

转载 作者:行者123 更新时间:2023-12-04 12:41:11 25 4
gpt4 key购买 nike

假设我有这样的数据类型:

data Color = Red | Blue | Green

如何使用 templatehaskell 生成这样的函数?
myShow Red   = ...
myShow Blue = ...
myShow Green = ...

即我正在寻找基于模式匹配的函数的多个定义。

最佳答案

{-# LANGUAGE TemplateHaskell #-}

module Test where

import Language.Haskell.TH

data Color = Red | Blue | Green

myShow' :: Q [Dec]
myShow' = return [FunD (mkName "myShow") [mkClause 'Red, mkClause 'Blue, mkClause 'Green]]
where mkClause n = Clause [ConP n []] (NormalB $ LitE $ StringL $ nameBase n) []

关于haskell - 带有模板 haskell 的多个函数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400203/

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