小编rig*_*old的帖子

DP和CC如何在Piet中改变?

根据规范,

黑色块和程序边缘限制程序流程.如果Piet解释器尝试移动到黑色块或边缘,则会停止并切换CC.然后解释器再次尝试从其当前块移动.如果第二次失败,则DP顺时针移动一步.重复这些尝试,CC和DP在交替尝试之间改变.如果在八次尝试之后解释器不能离开其当前的颜色块,则没有出路并且程序终止.

除非我不当读书吧,这是在与斐波那契序列例子,这里的行为赔率:http://www.dangermouse.net/esoteric/piet/fibbig1.gif(来源:HTTP://www.dangermouse. net/esoteric/piet/samples.html)

具体来说,为什么当DP击中左边缘时,DP在(0,3)((0,0)为(顶部,左侧))处左转?此时,DP和CC都是LEFT,因此,根据我的阅读,序列应为:

  1. 在(0,4)离开边缘尝试(并且失败)离开块,
  2. 将CC切换到右边,
  3. 尝试(并且失败)通过在(0,2)处离开边缘离开块.
  4. 将DP旋转到UP,
  5. 通过在(1,1)处输入白色块来尝试(并成功)将块保留在(1,2)

跟踪指示的行为似乎是DP一直旋转,使CC保持在LEFT状态.

我误解了什么?

esoteric-languages piet

5
推荐指数
1
解决办法
363
查看次数

如何在Lua中返回语句后放置标签?

以下结果导致第三行语法错误:

function f()
    return
    ::x::   
end
Run Code Online (Sandbox Code Playgroud)

为什么返回声明后不可能有标签?

lua goto return

5
推荐指数
1
解决办法
333
查看次数

CALL语句中BY CONTENT和BY VALUE有什么区别?

COBOL 中的语句BY CONTENT和语句之间有什么区别?BY VALUECALL

cobol calling-convention

5
推荐指数
1
解决办法
3412
查看次数

为什么映射的参数之间不需要逗号?

为什么以下有效?

my @ys = map { $_ * $_ } @xs;
Run Code Online (Sandbox Code Playgroud)

而以下无效?

my @ys = map { $_ * $_ }, @xs;
Run Code Online (Sandbox Code Playgroud)

map语言结构而不是真正的函数,还是有特殊的块规则?

perl higher-order-functions

4
推荐指数
1
解决办法
408
查看次数

如果var x = [] .reverse,为什么x()==窗口?

Google Chrome中正在发生一些看似奇怪的事情:

> var f = [].reverse;
undefined
> f() == window;
true
Run Code Online (Sandbox Code Playgroud)

在Node.js上,我得到了不同的结果:

> var f = [].reverse;
undefined
> f() == global;
TypeError: Array.prototype.reverse called on null or undefined
Run Code Online (Sandbox Code Playgroud)

为什么会这样?是否与范围有关?

javascript

4
推荐指数
1
解决办法
185
查看次数

如何在Lua中交换变量?

在下面的代码中,有人可以解释b,a = a,b内部是如何工作的吗?

-- Variable definition:
local a, b
-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b
print("value of a:", a)

print("value of b:", b)
Run Code Online (Sandbox Code Playgroud)

lua

4
推荐指数
2
解决办法
2529
查看次数

实现函数时需要override关键字

我希望通过override在重写方法实现之前始终使用来保持代码库清洁,但它在Scala中似乎是可选的.是否有工具,插件或参数来检查代码样式是否符合使用override

scala lint

4
推荐指数
1
解决办法
434
查看次数

F# 是否可以让接口实现接口?

是否有可能做这样的事情:

type face1 = 
    interface
    // ...
    end

type face2 =
    interface
    // ...
    interface face1 with
    // ...
    end
Run Code Online (Sandbox Code Playgroud)

这样任何接口face2的东西也可以被认为是face1?

inheritance f# interface

4
推荐指数
1
解决办法
914
查看次数

重新分配内存访问冲突读取位置

可能我的大脑现在不能正常工作......我想知道为什么我在我的代码中收到提到的错误:

int ** zm;
zm = (int**)calloc(1, sizeof(int*));
*zm = (int*)calloc(1, sizeof(int));
*zm[0] = 5;
*zm = (int*)realloc(*zm, 2*sizeof(int));
*zm[1] = 10; // Access violation reading location 0xFFFFFFFFFFFFFFFF
Run Code Online (Sandbox Code Playgroud)

有人可以解释该代码中发生了什么吗?

c pointers memory-leaks memory-management realloc

3
推荐指数
1
解决办法
1077
查看次数

Scala:在内部类型上获取TypeTag

我正在尝试使用TypeTag或者ClassTag为内部类型提供ClassTag带有类型参数的方法.具体来说,我有

trait Baz
trait Foo { type Bar <: Baz }
Run Code Online (Sandbox Code Playgroud)

我想做点什么

import scala.reflect.runtime.universe._
import scala.reflect._
typeTag[Foo#Bar] // or maybe
classTag[Foo#Bar]
Run Code Online (Sandbox Code Playgroud)

但我得到一个'没有打字标签'的错误.我的最终目标是提供ClassTag类似这样的东西

import scala.reflect.ClassTag
class Doer[A,B]()(implicit ctA:ClassTag[A], ctB:ClassTag[B])
object Fooer extends Doer[Foo, Foo#Bar]()(classTag[Foo], classTag[Foo#Bar])
Run Code Online (Sandbox Code Playgroud)

reflection scala

3
推荐指数
1
解决办法
349
查看次数