小编Mar*_*ijn的帖子

Java中更高级的泛型

假设我有以下课程:

public class FixExpr {
  Expr<FixExpr> in;
}
Run Code Online (Sandbox Code Playgroud)

现在我想介绍一个泛型参数,抽象使用Expr:

public class Fix<F> {
  F<Fix<F>> in;
}
Run Code Online (Sandbox Code Playgroud)

但Eclipse并不喜欢这样:

F型不是通用的; 它不能用参数<Fix <F >>进行参数化

这是可能的还是我忽略了导致这个特定实例破坏的东西?

一些背景信息:在Haskell中,这是编写泛型函数的常用方法; 我正在尝试将其移植到Java.上例中的类型参数F具有类型* - >*而不是通常的类型*.在Haskell中它看起来像这样:

newtype Fix f = In { out :: f (Fix f) }
Run Code Online (Sandbox Code Playgroud)

java generics polymorphism haskell higher-kinded-types

31
推荐指数
3
解决办法
4951
查看次数

无法访问的代码:错误或警告?

这是一个语言设计问题:

您是否认为无法访问的代码(通常是编程语言)应该发出警告(即"报告问题并反正编译")或错误("拒绝编译")?

就个人而言,我强烈认为这应该是一个错误:如果程序员编写了一段代码,那么它应该始终是为了在某些情况下实际运行它.但是,例如C#编译器似乎不同意这一点,只是报告了一个警告.

注意:我意识到良好的死代码检测是一个非常困难的问题,但这不是这个问题的焦点.

以下是一些代码片段的示例,其中一些语句明显无法访问:

return;
foo();
Run Code Online (Sandbox Code Playgroud)

-

throw new Exception();
foo();
Run Code Online (Sandbox Code Playgroud)

-

if (...) {
  return;
} else {
  throw new Exception();
}
foo();
Run Code Online (Sandbox Code Playgroud)

language-agnostic compiler-construction language-design

21
推荐指数
5
解决办法
2万
查看次数

如何用JSP表达式语言进行HTML编码?

考虑下面的JSP:

<param name="FlashVars" value="${flashVars}" />
Run Code Online (Sandbox Code Playgroud)

${flashVars}包含&符号的值需要在输出之前进行编码.相反,JSP期望值为${flashVars}HTML的一部分,并逐字输出&符号,导致HTML错误.

我发现如果我像这样编写它,我可以得到要编码的值:

<param name="FlashVars" value="<c:out value="${flashVars}"/>" />
Run Code Online (Sandbox Code Playgroud)

但这看起来很丑陋,让我的IDE混乱.有没有更好的方法来获得相同的结果?

java jsp html-encode el

16
推荐指数
1
解决办法
2万
查看次数

iOS上的可访问时间标签

我正在尝试使我的iPhone应用程序可访问.部分内容涉及为时间和日期部分生成可访问的VoiceOver标签NSDate.如何NSDate以可访问的方式格式化,以便VoiceOver支持的所有语言都能正常工作?

accessibility ios voiceover

16
推荐指数
1
解决办法
2647
查看次数

遍历和过滤haskell中的树

我是Haskell的新手(仍在努力完全理解monads).我有一个问题,我有一个树状的结构

type Tree = [DataA]

data DataA =  DataA1 [DataB] 
            | DataA2 String 
            | DataA3 String [DataA]
               deriving Show

data DataB =  DataB1 [DataA] 
            | DataB2 String 
            | DataB3 String [DataB]
               deriving Show
Run Code Online (Sandbox Code Playgroud)

我想要做的是能够遍历这个并生成一个带过滤器的新树.例如,我可能想要将树中的所有DataB2更改为"foo".

我已经看到了树在同一数据部分中的示例,并且构造函数是相似的.

在python世界中,我只是遍历列表,匹配我需要的任何东西,并替换值.

在Haskell中我猜我需要能够复制我的树,但是你如何处理隐藏在构造函数和不同数据类型中的列表?

tree haskell traversal generic-programming

8
推荐指数
1
解决办法
2092
查看次数

初学iphone问题:画一个矩形.我究竟做错了什么?

试图找出我在这里做错了什么.尝试了几件事,但我从未在屏幕上看到那个难以捉摸的矩形.现在,这就是我想做的 - 只需在屏幕上绘制一个矩形.

我在除CGContextSetRGBFillColor()之外的所有内容上都获得了"无效上下文".在那之后获得上下文对我来说似乎有点不对,但我不在家看着我昨晚使用的例子.

我也搞砸了别的东西吗?我真的很想今晚完成这么多工作......

- (id)initWithCoder:(NSCoder *)coder
{
  CGRect myRect;
  CGPoint myPoint;
  CGSize    mySize;
  CGContextRef context;

  if((self = [super initWithCoder:coder])) {
    NSLog(@"1");
    currentColor = [UIColor redColor];
    myPoint.x = (CGFloat)100;
    myPoint.y = (CGFloat)100;
    mySize.width = (CGFloat)50;
    mySize.height = (CGFloat)50;
    NSLog(@"2");
    // UIGraphicsPushContext (context);
    NSLog(@"3");
    CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
    context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, currentColor.CGColor);
    CGContextAddRect(context, myRect);
    CGContextFillRect(context, myRect);
  }

  return self;

}
Run Code Online (Sandbox Code Playgroud)

谢谢,

肖恩.

iphone draw quartz-graphics

7
推荐指数
2
解决办法
3万
查看次数