我有一个复选框TSX(JSX)元素:
<input type="checkbox" name={i.toString()} onClick={this.handleCheckboxClick} />
Run Code Online (Sandbox Code Playgroud)
在VS代码的帮助下,我知道输入参数类型this.handleCheckboxClick是MouseEvent<HTMLInputElement>.所以我实现了它:
private handleCheckboxClick(event: MouseEvent<HTMLInputElement>) {
...
}
Run Code Online (Sandbox Code Playgroud)
然后我收到错误说明[ts] Type 'MouseEvent' is not generic.如下图所示:
我的包的版本:
"@types/react": "^15.0.29",
"@types/react-dom": "^15.5.0",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"typescript": "^2.3.4",
Run Code Online (Sandbox Code Playgroud)
这是为什么?
使用cabal,我可以使用命令安装hakyll:
cabal install hakyll
Run Code Online (Sandbox Code Playgroud)
如何使用堆栈执行相同的操作?
haskell package-management cabal cabal-install haskell-stack
我知道分号在REPL中用作终结符.但我很困惑何时在源文件中使用它们.
例如,之后没有必要val x = 1.但如果我之后省略它use "foo.sml",编译器会抱怨它.
那么,使用分号的规则是什么?
根据Real World OCaml,"abc"应该是这种类型string.但实际上在我的utopREPL中,它的类型bytes.
我已经打开了Core.Std.这是为什么?
(版本OCaml是4.02.2; Core是112.24.01; utop是1.18.)
例如,MaybeT定义为:
newtype MaybeT m a =
MaybeT { runMaybeT :: m (Maybe a)}
Run Code Online (Sandbox Code Playgroud)
但不是:
newtype MaybeT m a =
MaybeT { runMaybeT :: Maybe (m a) }
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
对于以下代码:
(foldl and #t '(#t #f))
Run Code Online (Sandbox Code Playgroud)
球拍回归:
and: bad syntax in: and
Run Code Online (Sandbox Code Playgroud)
我知道and这不是一个功能.我可以使用以下方法解决这个问题lambda:
(foldl (lambda (a b) (and a b)) #t '(#t #f))
Run Code Online (Sandbox Code Playgroud)
我在这里有两个问题:
and不是一个功能.那这是什么?这是一个宏吗?
我使用的解决方案lambda似乎很难看.有没有更好的方法来解决这个问题?
谢谢.
是否可以使用其他#langs in#lang scribble/lp进行文学编程?
例如,我想#lang typed/racket在#lang scribble/lp. 如何意识到这一点?
双方letrec并letrec*在R6RS,但有只 letrec球拍,没有letrec*.这些有什么区别?
我试图从客户端向服务器发送消息,并在服务器上打印消息.
server.rkt:
#lang racket
(define the-listener (tcp-listen 9876))
(define-values (in out) (tcp-accept the-listener))
(displayln (read in))
(tcp-close the-listener)
Run Code Online (Sandbox Code Playgroud)
client.rkt:
#lang racket
(define-values (in out) (tcp-connect "localhost" 9876))
(write "Hello" out)
Run Code Online (Sandbox Code Playgroud)
我跑了server.rkt然后client.rkt在终端.但是服务器只打印#<eof>而不是Hello消息.
这是为什么?以及如何正确地做到这一点?
在关于参数化的 "球拍指南"中,有以下代码:
(define location (make-parameter "here"))
(let ([get (parameterize ([location "with a fox"])
(lambda () (location)))])
(get))
Run Code Online (Sandbox Code Playgroud)
代码返回"here".
评估这段代码的顺序是什么?谢谢.
档案a.rkt:
#lang racket
(provide f)
(define (f) 10)
(f)
Run Code Online (Sandbox Code Playgroud)
档案b.rkt:
#lang racket
(require "a.rkt")
Run Code Online (Sandbox Code Playgroud)
然后当我跑步时b.rkt,我会得到f我想要的东西.但10也会在我的REPL中打印出我不想要的内容.
我怎样才能require文件a.rkt,而不10印在我的REPL?
谢谢
为什么是这样:
例如,
a) 以下代码片段是错误的:
; Must define function `f` before variable `a`.
#lang racket
(define a (f))
(define (f) 10)
Run Code Online (Sandbox Code Playgroud)
b) 虽然以下片段是正确的:
; Function `g` could be defined after function `f`.
#lang racket
(define (f) (g)) ; `g` is not defined yet
(define (g) 10)
Run Code Online (Sandbox Code Playgroud)
C)右太:
; Variable `a` could be defined after function `f`
#lang racket
(define (f) a) ; `a` is not defined yet
(define a 10)
Run Code Online (Sandbox Code Playgroud)