是否可以在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
如果有任何方法可以从内部类实例访问外部类字段,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".可能吗?
我有一个函数的例子,其中我不能写一个类型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)