我一直在尝试使用Idris,似乎应该很简单地指定某种类型来表示两个不同数字之间的所有数字,例如NumRange 5 105到10之间的所有数字的类型.我想包括双打/浮点数,但用整数做同样的类型同样有用.我该怎么做呢?
如何从url字符串中获取html响应?使用这个:
#lang racket
(require net/url)
(require net/websocket/client)
(define google (string->url "http://google.com"))
(ws-connect(struct-copy url google [scheme "ws"]))
Run Code Online (Sandbox Code Playgroud)
给我 ws-connect: Invalid server handshake response. Expected #"\242\266\336\364\360\"\21~Y\347w\21L\2326\"", got #"<!DOCTYPE html>\n"
在Haskell中,monad是根据函数return和bind定义的,其中return有类型a -> m a,bind有类型m a -> (a -> m b) -> m b.之前已经指出monad也可以用return和join来定义,其中join是一个带有类型的函数m (m a) -> m a.绑定可以用连接来定义,但是反过来可能吗?可以在绑定方面加入定义吗?
没有加入,我不知道如果我以某种方式获得"两次包裹"的monadic值,我会做什么,m (m a)- 没有任何仿函数或monad操作"删除任何层",可以这么说.如果这是不可能的,为什么Haskell和许多其他monad实现在绑定方面定义它们?它似乎没有基于连接的定义有用.
Github 页面很好,但它要求您希望显示的静态文件在master分支中。这对我来说是有问题的,因为我打算从源代码生成博客文章文件,而该代码正是我在 master 中想要的。用于项目页面的 Github 使用一个gh-pages分支。有什么方法可以告诉 github 将该分支用于用户页面存储库吗?
我正在阅读懒惰的评估,并且无法理解他们给出的基本示例.
#lang racket
(define (bad-if x y z)
(if x y z))
(define (factorial-wrong x)
(bad-if (= x 0)
1
(* x (factorial-wrong (- x 1)))))
(factorial-wrong 4)
Run Code Online (Sandbox Code Playgroud)
我有点困惑为什么这个程序永远不会终止.我知道下面的代码工作得很好:
(define (factorial x)
(if (= x 0)
1
(* x (factorial (- x 1)))))
(factorial 4)
Run Code Online (Sandbox Code Playgroud)
所以我假设它与范围有关.我尝试了一步一步的调试,即使x被映射到0,factorial-wrong也会执行递归函数.
在 R5RS Scheme 中,如何通过一次调用显示多个参数?我下面的实现有效,但添加了额外的括号和空格。
#!/usr/bin/env racket
#lang r5rs
(define (display-all . rest) (display rest))
(display-all "I " "have " "a " "lovely " "bunch " "of " "coconuts\n")
Run Code Online (Sandbox Code Playgroud)
结果是
owner@K53TA:~$ ./Template.ss
(I have a lovely bunch of coconuts
)
Run Code Online (Sandbox Code Playgroud) 我正在学习球拍,我需要一些帮助.如何仅运行此功能4次而不是无限运行?
(define loop
(? ()
(define delay (random 5))
(digital-write led1 HIGH)
(sleep delay)
(displayln delay)
(digital-write led1 LOW)
(sleep delay)
(loop)))
Run Code Online (Sandbox Code Playgroud)