You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell报错:非法在项级别使用类型构造器‘Int’咨询

问题分析与修正

你的代码存在两个核心问题:

  • 混淆了类型与值的使用场景:Int是Haskell中的类型构造器,只能在类型层面(比如函数的类型签名里)用来声明数据的类型,不能把它当成具体的数值放到表达式里做运算——这就是错误提示里"Illegal term-level use of the type constructor ‘Int’"的原因。
  • 函数定义缺少参数:你的类型签名Test :: Int -> Int声明这是一个接收Int参数、返回Int的函数,但函数体Test = Int * Int既没有接收参数,也没有用参数来做计算。

修正后的代码

-- 惯例:Haskell函数名通常用小写开头,大写开头一般留给类型/数据构造器
square :: Int -> Int
square x = x * x

说明

  • 第一行的类型签名里,Int -> Int依然用Int来声明输入输出的类型,这是合法的类型层面使用。
  • 第二行的square x表示函数接收一个名为x的参数(变量名可以随便取,比如num、n都可以),然后通过x * x实现参数自乘的逻辑。

内容的提问来源于stack exchange,提问作者KevenH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:57:18