第4章,HtDP.
注意:我也在其他问题中看到了这一点.
是出于清晰的原因还是算法的原因,我不知道,基本情况返回空而不是列表本身是空的.
例:
; List-of-numbers -> List-of-numbers
; compute the weekly wages for all given weekly hours
(define (wage* alon)
(cond
[(empty? alon) empty] ;<---- see here
[else (cons (wage (first alon)) (wage* (rest alon)))]))
; Number -> Number
; compute the wage for h hours of work
(define (wage h)
(* 12 h))
Run Code Online (Sandbox Code Playgroud)
我认为这是正确的.
; List-of-numbers -> List-of-numbers
; compute the weekly wages for all given weekly hours
(define (wage* alon)
(cond
[(empty? alon) alon] ;<---- see here …Run Code Online (Sandbox Code Playgroud) // Purpose: Determine attendance based on ticket-price
// Example: attendance(4.90) == 135
def attendance: Double => Int = {
(ticket_price: Double) => {
120 + math.ceil(150 * (5.00 - ticket_price)).toInt
}
} //> attendance: => Double => Int
attendance(4.90) //> res0: Int = 135
assert(attendance(4.90) == 135)
Run Code Online (Sandbox Code Playgroud)
基本上断言正在爆炸,出席人数正在返回134而不是135.所以我把math.ceil扔到它并且它起作用了.但我只是想知道这是否是最佳/适当/惯用的方式.
对于那些想知道这些代码来自何处的人:出勤代码
我在sql server 2008中有一个查询.我想要从下拉列表中传递一个值或者IS NOT NULL(所以它显示所有的值).处理这个问题的最佳方法是什么?我知道你不能将字符串"IS NOT NULL"传递给参数.我有点卡在这个上面.
ASP.NET 3.5和SQL Server 2008.
我正在尝试在第三方数据库中更改模式.它太老了.除了两条线外,一切都已移动.
ALTER SCHEMA dbo TRANSFER db_owner.File
ALTER SCHEMA dbo TRANSFER db_owner.User
Run Code Online (Sandbox Code Playgroud)
现在我看到File和User是SQL关键字.这就是我收到错误的原因.有没有办法告诉SQL忽略它们作为关键字?它可以运行吗?
这个查询:
select dept, job
from organizations
where (dept = 'Marketing' and job <> 'Sam Wise')
or (dept = 'Marketing' and job <> 'The Precious')
Run Code Online (Sandbox Code Playgroud)
保留给予记录的工作显示'The Precious'的时候不应该.但是如果我以这种方式编写查询:
select dept, job
from organizations
where (dept = 'Marketing' and job <> 'Sam Wise')
and (dept = 'Marketing' and job <> 'The Precious')
Run Code Online (Sandbox Code Playgroud)
然后我得到了正确的记录.没有'Sam Wise'或'The Precious'的工作.所以我想知道我对T-SQL中的AND和OR的理解是否混淆或者我的sql服务器是不是很糟糕.
简而言之,为什么第一个查询不会删除所有将"Sam Wise"或"The Precious"作为作业的记录,但第二个查询是?
我已经安装了ASP.NET MVC3和Tools Update,但是在工具箱中没有看到任何MVC3控件.
如果他们应该在那里,我该如何添加它们?
如果没有,为什么不呢?
(define (subtract-1 n)
(string-append "Number is: " (number->string n))
(cond
[(= n 0) "All done!"]
[else (subtract-1(- n 1))]))
Run Code Online (Sandbox Code Playgroud)
我不断收到错误消息:define:对于函数体,只期望一个表达式,但是发现了1个多余的部分。我不明白为什么要得到这个。
对自己的提示:使用DrRacket时,将语言设置为BSL可能会使Racket命令在编译时出错。
我是这个“语义标记”的新手。但我不知道这是否正确。简而言之,在这种情况下,我不知道何时使用 section 与 nav 标签。它应该是一个或另一个,根本没有,还是完全按照我的意思?我说的是 id = sidebar 的部分。
<body>
<div class="page">
<header>
<table id="formHeader" style="width:100%;text-align:center;">
<tr>
<td></td>
</tr>
</table>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
</nav>
</header>
<section id="sidebar">
@*<nav>*@
Go To...
<ul>
<li>First Move to Moon</li>
<li>First Move to Moon</li>
</ul>
@*</nav>*@
</section>
<section id="main">
@RenderBody()
</section>
<footer>
</footer>
</div>
</body>
Run Code Online (Sandbox Code Playgroud) 我正在使用BSL语言在HtDP,第4章中工作.
我正在处理的问题是:
练习136:如果你运行main,按空格键(开枪),等待很长时间,镜头从画布上消失.但是,当您关闭世界画布时,结果是一个仍包含此隐形镜头的世界.
设计一个替代的tock函数,它不仅可以每个时钟刻度移动一个像素,还可以消除那些坐标位于画布上方的像素.提示:您可能希望考虑为递归cond子句设计辅助函数.
我想出的解决方案如下(在剧透中).但是,我觉得我在做一些多余的事情.基本上我的辅助功能的应用不太正确.
(define (main w0)
(big-bang w0
(on-tick ticking)
(on-key fire-key)
(to-draw to-render)))
(define HEIGHT 100)
(define WIDTH 80)
(define TURRET-X-POS (/ WIDTH 2))
(define BKGRND (empty-scene WIDTH HEIGHT))
(define SHOT-IMG (triangle 4 "solid" "red"))
(define (to-render w0)
(cond
[(empty? w0) BKGRND]
[else (place-image SHOT-IMG TURRET-X-POS (first w0) (to-render (rest w0)))]))
(define (fire-key w0 ke)
(cond
[(key=? ke " ") (cons HEIGHT w0)]
[else w0]))
(define (ticking w0)
(cond
[(empty? w0) empty]
[(empty? (only-inbound-shots w0)) empty]
[else …Run Code Online (Sandbox Code Playgroud)