小编Ell*_*tus的帖子

为什么这个Haskell过滤器会终止?

我不明白为什么以下Haskell代码在GHCi下终止:

let thereExists f lst = (filter (==True) (map f lst)) /= []
thereExists (\x -> True) [1..]
Run Code Online (Sandbox Code Playgroud)

我没想到过滤器的调用永远不会完成,因为它的第二个参数是无限的,我不认为比较可能发生在lhs完全计算之前.发生了什么?

haskell lazy-evaluation ghc ghci

7
推荐指数
1
解决办法
589
查看次数

在没有第三方框架的情况下测试Android活动时如何注入依赖关系?

我想测试一个CommentActivity通常构造和使用实例的Android活动CommentsDataSource(两者都是我写的类).

public class CommentActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    :
    CommentsDataSource = new CommentsDataSource(..);
    :
  }
  :
}
Run Code Online (Sandbox Code Playgroud)

我愿意创建MockCommentsDataSource自己,并希望避免使用第三方模拟框架.(为什么?因为我的教学试图减少我需要填写的学期信息量以及学生需要安装的软件数量.我看过其他帖子推荐Guice,roboguice和Spring.)

我的问题是如何将CommentsDataSource(或MockCommentsDataSource)传递给Activity.制作它们似乎不切实际,Serializable或者Parcelable它们必须是为了通过Intent它开始传递它们CommentActivity.虽然我可以很容易地传入一个调试标志,但使用它需要CommentActivity知道MockCommentsDataSource,这实际上不是它的业务(并且在一个单独的应用程序中):

public class CommentActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    :
    debugMode = getIntent().getBooleanExtra(DEBUG_MODE, false);

    // Get a connection to the database.
    final CommentsDataSource cds = (debugMode ? 
      new MockCommentsDataSource() …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection abstract-factory android-testing

7
推荐指数
1
解决办法
792
查看次数

Haskell映射函数中约束错误中的非类型变量参数

我正在编写一个函数mapper2,它将函数应用于两个列表:

mapper2 :: (a-> b -> c) -> [a] -> [b] -> [c]
mapper2 f (x:xs) (y:ys) = (f x y) : (mapper2 f xs ys)
mapper2 _ _ _ = []
Run Code Online (Sandbox Code Playgroud)

我能够编译该函数但在应用它时会出错:

*Main> mapper2 (\x -> x*2) [2,4] [4,6] 

<interactive>:4:1: error:
    • Non type-variable argument in the constraint: Num (b -> c)
      (Use FlexibleContexts to permit this)
    • When checking the inferred type
        it :: forall b c. (Num (b -> c), Num b) => [c]
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释如何解决这个问题以及错误意味着什么?

haskell

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

什么Java REST框架与App Engine和Android一起用于学生?

我正在教授一门关于移动应用程序开发的大学课程,并希望向我的学生介绍一个用于App Engine的REST框架,以帮助他们为他们正在构建的Android应用程序进行数据存储.任何人都可以推荐符合以下条件的App Engine Java REST框架:

一定有:

  • 轻松学习曲线
  • 有详细记录,有清晰的教程和示例程序
  • 干净的抽象
  • 像啤酒一样免费
  • 适用于Eclipse

很高兴有:

  • Android客户端
  • 言论自由

不重要:

  • 能够支持大量查询量
  • 高度可定制

从我的网络搜索,Restlet看起来最好.我还应该考虑其他任何框架吗?

java rest google-app-engine android restlet

6
推荐指数
2
解决办法
2607
查看次数

TextView(getDrawingCache)中的位图始终为null

我试图提取与显示的TextView实例关联的位图,但它总是返回一个空值.我究竟做错了什么?我应该使用textview.draw(canvas)吗?

    TextView textview = (TextView) findViewById(R.id.text_title);
    textview.setDrawingCacheEnabled(true);
    textview.buildDrawingCache();        
    Bitmap bmp = textview.getDrawingCache();
Run Code Online (Sandbox Code Playgroud)

android view

6
推荐指数
2
解决办法
7484
查看次数

将字符串分解为ant build.xml文件中的不同行

我想知道如何缩短我的ant build.xml文件中包含长字符串文字的行.例如:

<target name="foo"
        description="I sure do have a lot to say.  Blah Blah.  This is getting awfully wide, etc."
        depends="A,B,C,D,E,F,G,H,I,...,ZZ">
  ...
</target>
Run Code Online (Sandbox Code Playgroud)

显然,我可以通过创建依赖关系树来缩短depends属性值,但这在其他情况下不起作用,例如描述.处理这个问题的正确方法是什么?

xml ant build.xml

6
推荐指数
1
解决办法
2487
查看次数

为什么Java中的用户级线程称为"绿色"?

可能重复:
绿色线程与非绿色线程

为什么Java线程在JVM中的用户级实现,称为"绿色线程"?它是否与环境主义类比,意味着它们比OS线程或其他东西更少浪费?

编辑:一些引用术语使用的位置:

java multithreading green-threads

6
推荐指数
1
解决办法
715
查看次数

为什么表格文字与Lua中的表格引用区别对待?

这是一个Lua 5.2.2脚本,显示了表的声明和索引:

> mylist = {'foo', 'bar'}
> print(mylist[1])
foo
Run Code Online (Sandbox Code Playgroud)

以下声明为何不合法?

> print({'foo', 'bar'}[1])
stdin:1: ')' expected near '['
Run Code Online (Sandbox Code Playgroud)

我想不出任何其他语言,其中文字不能替代参考(当然,除非需要左值).

FWIW,使表格文字具有括号,使声明合法:

> print(({'foo', 'bar'})[1])
foo
Run Code Online (Sandbox Code Playgroud)

lua lua-table

6
推荐指数
2
解决办法
364
查看次数

是否可以连接到 Spotify 的 MediaBrowserService?

我正在编写语音助手,希望能够在 Spotify 中启动搜索结果。为了了解如何连接到 Spotify 和其他应用程序,我正在使用Google 的媒体控制器测试应用程序,它被描述为执行以下操作:

创建一个连接到 MediaBrowserService 的简单 MediaController 以测试应用间媒体控件。

此应用程序可与通用 Android 音乐播放器示例或任何其他实现媒体 API 的应用程序配合使用。

当我运行该应用程序时,它将 Spotify 标识为提供MediaBrowserService,但是当我尝试通过该应用程序连接到 Spotify 时出现错误:

包含错误的 Android 屏幕截图:“Spotify 的 MediaBrowser 连接失败”

这是连接代码

mBrowser = new MediaBrowserCompat(this, mMediaAppDetails.componentName,
        new MediaBrowserCompat.ConnectionCallback() {
             @Override
             public void onConnected() {
                 setupMediaController();
                 mBrowseMediaItemsAdapter.setRoot(mBrowser.getRoot());
             }

             @Override
             public void onConnectionSuspended() {
                 //TODO(rasekh): shut down browser.
                 mBrowseMediaItemsAdapter.setRoot(null);
             }

             @Override
             public void onConnectionFailed() {
                 showToastAndFinish(getString(
                         R.string.connection_failed_msg, mMediaAppDetails.appName));
             }

         }, null);
mBrowser.connect();
Run Code Online (Sandbox Code Playgroud)

具体来说,在调用之后不久mBrowser.connect(),回调的onConnectionFailed()方法被调用。

这是否意味着Spotify的拒绝MediaBrowserService来自非白名单中的应用程序请求(如描述在这里),并有没有办法让一个单独的应用程序的作家连接到Spotify的MediaBrowserService,或者是有一些其他的方式来连接?FWIW,Google Play …

android spotify android-service google-music mediabrowserservice

6
推荐指数
1
解决办法
604
查看次数

最小完整定义 Ord 是如何选择的?

Data.Ord包括这些方法:

compare :: a -> a -> Ordering

(<) :: a -> a -> Bool

(<=) :: a -> a -> Bool

(>) :: a -> a -> Bool

(>=) :: a -> a -> Bool

max :: a -> a -> a

min :: a -> a -> a
Run Code Online (Sandbox Code Playgroud)

最小的完整定义是compare | (<=).

我了解如何从这两种方法中的任何一种确定其他方法。

我不明白为什么(>)(例如)不能也用作最小完整定义。not (a > b)相当于a <= b.

(>)作为最小完整定义被排除的决定是任意的,还是我遗漏了一些东西?

haskell typeclass

6
推荐指数
1
解决办法
279
查看次数