首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟:来自ghci的t

模拟:来自ghci的t
EN

Stack Overflow用户
提问于 2021-07-18 10:55:36
回答 1查看 160关注 0票数 2

阅读haskell关于类型的书,我想重复:t命令的示例:

代码语言:javascript
复制
ghci> :t 'a'  
'a' :: Char  
ghci> :t True  
True :: Bool  
ghci> :t "HELLO!"  
"HELLO!" :: [Char]  
ghci> :t (True, 'a')  
(True, 'a') :: (Bool, Char)  
ghci> :t 4 == 5  
4 == 5 :: Bool

不幸的是,我无法在本地安装haskell,这就是为什么我使用ideone.com

但我不明白如何创建相同的样本。

我试过这样做:

代码语言:javascript
复制
main = do
    putStrLn "Start"
    :t 'a'
    putStrLn "Finish"

或者这个:

代码语言:javascript
复制
:t 'a'

或者:

代码语言:javascript
复制
putStrLn ("Finish" ++ show :t 'a')

有没有可能在不安装ghci的情况下显示类型?也许,还有另一个网络小提琴可以做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-18 11:00:24

可以使用typeOf :: forall a. Typeable a => a -> TypeRep获取TypeRep对象。它要求您的类型是Typeable,但是给出的示例是这样的。

例如:

代码语言:javascript
复制
import Data.Typeable(typeOf)

main = putStrLn ("Finish" ++ show (typeOf 'a'))

这将不会打印完整的多态类型,因为在编译时类型是确定的。因此,您可以看到Haskell编译器派生的类型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68428366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档