我有一个ggplot命令
ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )
Run Code Online (Sandbox Code Playgroud)
在一个函数内部.但我希望能够使用该函数的参数来挑选要用作颜色和组的列.即我想要这样的东西
f <- function( column ) {
...
ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) )
}
Run Code Online (Sandbox Code Playgroud)
因此ggplot中使用的列由参数确定.例如对于f("majr")我们得到了效果
ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )
Run Code Online (Sandbox Code Playgroud)
但对于f("性别"),我们得到了效果
ggplot( rates.by.groups, aes(x=name, y=rate, colour=gender, group=gender) )
Run Code Online (Sandbox Code Playgroud)
我试过的一些事情:
ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ) )
Run Code Online (Sandbox Code Playgroud)
不工作.也没有
e <- environment()
ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ), environment=e )
Run Code Online (Sandbox Code Playgroud) 在GitHub中,有没有办法查看所有分支上的所有最近提交.反向时间顺序最好.
也许我是史努比,但我希望能够看到我的开发人员最近在做什么,至少在github上对存储库的提交方面.到目前为止,我见过的最接近的是网络图,这当然非常有用.
这主要是一个好奇心问题.考虑以下功能
var closure ;
function f0() {
var x = new BigObject() ;
var y = 0 ;
closure = function(){ return 7; } ;
}
function f1() {
var x = BigObject() ;
closure = (function(y) { return function(){return y++;} ; })(0) ;
}
function f2() {
var x = BigObject() ;
var y = 0 ;
closure = function(){ return y++ ; } ;
}
Run Code Online (Sandbox Code Playgroud)
在每种情况下,在执行函数之后,(我认为)无法到达x,因此BigObject可以被垃圾收集,只要x是对它的最后一个引用.只要评估函数表达式,一个简单的解释器就会捕获整个范围链.(首先,你需要这样做来调用eval工作 - 下面的例子).更智能的实现可能会在f0和f1中避免这种情况.更智能的实现将允许保留y,但不保留 …
我有一个函数文字
{case QualifiedType(preds, ty) =>
t.ty = ty ;
Some((emptyEqualityConstraintSet,preds)) }
Run Code Online (Sandbox Code Playgroud)
这会导致错误消息
missing parameter type for expanded function The argument types of an anonymous function
must be fully known. (SLS 8.5) Expected type was:
? => Option[(Typer.this.EqualityConstraintSet, Typer.this.TypeRelationSet)]
Run Code Online (Sandbox Code Playgroud)
我查看了SLS 8.5,但未找到解释.
如果我自己扩展功能
{(qt : QualifiedType) =>
qt match {case QualifiedType(preds, ty) =>
t.ty = ty ;
Some((emptyEqualityConstraintSet,preds)) }}
Run Code Online (Sandbox Code Playgroud)
错误消失了.
(a)为什么这是一个错误?
(b)我该怎么做才能解决这个问题?
我尝试了明显的修复,即: QualifiedType在模式和=>之间添加,但这是一个语法错误.
我注意到的一件事是上下文有所不同.如果我使用函数literal作为声明为期望a的函数的参数QualifiedType => B,则没有错误.但是如果我将它用作期望a的函数的参数A => B,则会出现错误.我希望这里发生的事情是,由于模式可以想象应用于类型为QualifiedType的超类型的对象,编译器不愿意在不保证函数不会应用于的情况下分配明显的类型.任何不是QualifiedType的东西.我真正想要的是能够写出{QualifiedType( preds, ty) => ...} …
假设我有一个像这样的公式的列向量
N =
4*k2 + 5*k3 + k1*x
7*k2 + 8*k3 + k1*y
Run Code Online (Sandbox Code Playgroud)
和像这样的符号变量的列向量
k =
k1
k2
k3
Run Code Online (Sandbox Code Playgroud)
公式相对于线性是线性的k.我想找到一个矩阵M,使得M*k等于N.
我可以这样做N/k.但是,这给了
[ (4*k2 + 5*k3 + k1*x)/k1, 0, 0]
[ (7*k2 + 8*k3 + k1*y)/k1, 0, 0]
Run Code Online (Sandbox Code Playgroud)
这是正确的,但不是我想要的.我想要的是矩阵
x 4 5
y 7 8
Run Code Online (Sandbox Code Playgroud)
在我看来,这是最简单的答案,因为它不涉及任何变量k.
我如何说服Matlab从公式或公式向量中分解出指定的变量?
在Haxe中有没有办法获得Java的抽象方法和抽象类?
我想要的是
// An abstract class. (Written in a Java/Haxe hybrid.)
abstract class Process<A> {
public function then<B>( f : A -> Process<B> ) : Process<B> {
var a : A = go() ;
return f(a) ;
}
abstract public function go( ) : A ;
}
// A concrete class.
class UnitP<A> extends Process<A> {
var _a : A ;
public function new( a : A ) {
_a = a ; }
public override function go() : A …Run Code Online (Sandbox Code Playgroud) 基本要求是使用关键字作为标识符,所以我想区分令牌和它的上下文.(例如,class是一个关键字,但我们允许一个名为的变量class).
在Java中,这是可能的,但它是如此艰难,这里就是我如何做到这一点
TOKEN :
{
<I_CAL: "CAL"> : DO_CAL
| <I_CALL: "CALL">
| <I_CMP: "CMP">
| <I_EXIT: "EXIT">
| <I_IN: "IN">
| <I_JMP: "JMP">
| <I_JPC: "JPC"> : NEED_CMP_OP
| <I_LD: "LD"> : NEED_DATA_TYPE
| <I_NOP: "NOP">
| <I_OUT: "OUT">
| <I_POP: "POP">
| <I_PUSH: "PUSH">
| <I_RET: "RET">
| <I_DATA: "DATA"> : DO_DATA
| <I_BLOCK: ".BLOCK">
}
// T prefix for Token
TOKEN :
{
<T_REGISTER : "R0" | "R1" | "R2" | …Run Code Online (Sandbox Code Playgroud) 我有一些基本上像这样的 Typescript 代码
if( ... )
result = $(document.createElement("div")) ;
} else if( ... ) {
result = $(document.createElement("div")) ;
} else {
assert.unreachable( "Unknown label in buildHTML.") ;
}
result.attr( "data-childNumber", childNumber.toString() ) ;
Run Code Online (Sandbox Code Playgroud)
的返回类型assert.unreachable是never。
最后一行有一个错误显示“变量'结果'在被分配之前被使用。”
在我看来,never结果assert.unreachable应该告诉编译器没有离开该else部分的路径。
我知道我可以通过throw null;在 末尾添加来抑制错误else,但这似乎不雅。
的定义中也出现了类似的问题unreachable。它看起来像这样
export function unreachable( message? : string ) : never {
if( message===undefined ) message = "Unreachable code reached." ;
else message = …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的Scala代码
var str = "?"
for( ch <- str ) { printf("%d, %x", ch.toInt, ch.toInt) ; println }
println
str = "\u2264" ;
for( ch <- str ) { printf("%d, %x", ch.toInt, ch.toInt) ; println }
Run Code Online (Sandbox Code Playgroud)
如果在您的浏览器上没有正确显示,则第一个字符串包含一个字符,在双引号之间,这是符号U + 2264的小于或等于.
该计划的产出
8218, 201a
226, e2
167, a7
8804, 2264
Run Code Online (Sandbox Code Playgroud)
显然,第一个字符串在运行时长度为3个字符,而不是源文件中的1个字符长.
源文件以UTF-8存储.十六进制转储显示它被正确编码,第一个字符串是22 E2 89 A4 22.我正在使用Eclipse和Eclipse的Scala插件.
写测试台的时候,写的有没有问题
wait for 1 ns ; wait until rising_edge( clock ) ;
Run Code Online (Sandbox Code Playgroud)
每次我想等待下一个上升沿?
我想将此序列放入一个过程中,然后始终使用它。
我想等待 1 ns 的原因是,如果我只有 swait until并且其中两个之间没有信号分配,它们将合并为一个。
时钟周期时间为 10ns,因此 1 ns 应该不成问题。我真正想做的是等待一个增量,但我不知道该怎么做。是否可以?
这种方法是否存在隐藏的陷阱?
我们使用 VHDL 93 和 ISIM 模拟器。