小编Mar*_*ova的帖子

是否可以定义中缀函数?

是否可以在CoffeeScript(或纯JavaScript)中定义自己的中缀函数/运算符?我想打电话

a foo b
Run Code Online (Sandbox Code Playgroud)

要么

a `foo` b
Run Code Online (Sandbox Code Playgroud)

代替

a.foo b
Run Code Online (Sandbox Code Playgroud)

或者,当foo是全局函数时,

foo a, b
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

javascript functional-programming infix-operator coffeescript

11
推荐指数
2
解决办法
4442
查看次数

CoffeeScript:从内部类实例访问外部类对象

如果有任何方法可以从内部类实例访问外部类字段,EXCEPT将外部类实例传递给内部类构造函数?

更具体地说,我有一个简单的例子:

class Test
  constructor: (@number) ->

  class SubTest
    constructor: (@name) ->

    toString: () ->
      console.log @name, @number

  getSubTest: () ->
    return new SubTest "SubTest"

test = new Test 10
test.getSubTest().toString() # SubTest undefined
Run Code Online (Sandbox Code Playgroud)

所以,我想得到"SubTest 10"而不是"SubTest undefined".可能吗?

coffeescript

9
推荐指数
1
解决办法
3078
查看次数

Haskell:在`where`中键入声明

我有一个函数的例子,其中我不能写一个类型in where子句.replace是一个函数,它将给定列表中的所有X替换为Y.

replace :: (Eq a) => a -> a -> [a] -> [a]
replace x y xs = map helper xs
  where
    helper :: (Eq a) => a -> a
    helper = (\el -> if el == x then y else el)
Run Code Online (Sandbox Code Playgroud)

当我尝试编译此函数时,我收到一个错误:

ProblemsArithmetics.hs:156:31:
Could not deduce (a ~ a1)
from the context (Eq a)
  bound by the type signature for
             replace :: Eq a => a -> a -> [a] -> [a]
  at ProblemsArithmetics.hs:152:12-41
or …
Run Code Online (Sandbox Code Playgroud)

haskell types

5
推荐指数
1
解决办法
168
查看次数