Functional programming 在球拍中不使用鼠标直接获取鼠标事件是否可能?

Functional programming 在球拍中不使用鼠标直接获取鼠标事件是否可能?,functional-programming,mouseevent,racket,Functional Programming,Mouseevent,Racket,我非常需要直接使用鼠标事件 不使用大爆炸就可以获得鼠标事件吗 i、 e我想构建一个如下所示的函数: (定义(检查是否按下按钮)(鼠标=?mev“按下按钮”) 但为了获得mev,输入是从bigbang的鼠标上输入的 关于我: 我对球拍节目不太熟悉简短回答:不太熟悉 但是:当鼠标事件发生时,“大爆炸”模型调用鼠标事件处理程序,因此,如果您想知道是否按下鼠标按钮,您的世界状态应该包括一个指示是否按下鼠标按钮的布尔值,并且您的鼠标事件处理程序应该返回一个正确更新此布尔值的世界状态 这种架构不适合您有什么

我非常需要直接使用鼠标事件

不使用大爆炸就可以获得鼠标事件吗

i、 e我想构建一个如下所示的函数:

(定义(检查是否按下按钮)(鼠标=?mev“按下按钮”)

但为了获得mev,输入是从bigbang的鼠标上输入的

关于我:
我对球拍节目不太熟悉

简短回答:不太熟悉

但是:当鼠标事件发生时,“大爆炸”模型调用鼠标事件处理程序,因此,如果您想知道是否按下鼠标按钮,您的世界状态应该包括一个指示是否按下鼠标按钮的布尔值,并且您的鼠标事件处理程序应该返回一个正确更新此布尔值的世界状态


这种架构不适合您有什么原因吗?

简短回答:不太适合

但是:当鼠标事件发生时,“大爆炸”模型调用鼠标事件处理程序,因此,如果您想知道是否按下鼠标按钮,您的世界状态应该包括一个指示是否按下鼠标按钮的布尔值,并且您的鼠标事件处理程序应该返回一个正确更新此布尔值的世界状态


这种架构不适合你有什么原因吗?

如果这是一个学生项目,你可能必须坚持“大爆炸”所提供的东西(见John Clements的答案)

但是如果您可以使用
racket/gui
(作为一种语言
#lang racket/gui
,或者作为一种附加的
(require racket/gui)
),那么您正在寻找

比如说

#lang racket
(require racket/gui)

(define (mouse-button-down?)
  (define-values (pt state)
    (get-current-mouse-state))
  (if (or (memq 'left state)
          (memq 'right state)
          (memq 'middle state))
      #t
      #f))

如果这是一个学生项目,你可能必须坚持大爆炸提供的东西(见约翰·克莱门茨的答案)

但是如果您可以使用
racket/gui
(作为一种语言
#lang racket/gui
,或者作为一种附加的
(require racket/gui)
),那么您正在寻找

比如说

#lang racket
(require racket/gui)

(define (mouse-button-down?)
  (define-values (pt state)
    (get-current-mouse-state))
  (if (or (memq 'left state)
          (memq 'right state)
          (memq 'middle state))
      #t
      #f))