小编ked*_*bug的帖子

如何在Haskell中理解":t((==)<*>)"?

我是Haskell的新手,遇到麻烦<*>:

((==) <*>) :: Eq a => (a -> a) -> a -> Bool
Run Code Online (Sandbox Code Playgroud)

我如何理解这一点以及如何推断它?

haskell types type-inference ghc

28
推荐指数
1
解决办法
2930
查看次数

Racket如何处理(定义(f(xy))体)?

我正在学习Racket,并写了这个定义:

(define y 2)
(define (f (x y))
  (print x)
  (print y))
Run Code Online (Sandbox Code Playgroud)

当我评价(f 1),x必然1,并且y必然2.这对我来说似乎很奇怪.这个表达式是如何扩展的?口译员对此做了什么?

lisp scheme racket

4
推荐指数
1
解决办法
239
查看次数

在Scheme中,我如何理解“(define (fx . y) (cons xy))”

我是Scheme的新手,在这里我遇到了虚线列表的问题,这是一个例子:

(define (f x . y) (cons x y))

当我输入时: (f 1 2 3)结果是'(1 2 3)。是的,它返回一个列表,此时

x => 1y => '(2 3)

我的问题是,当f采用不固定长度的 args时,解释器如何知道这一点?

lisp scheme functional-programming

3
推荐指数
1
解决办法
348
查看次数