我不明白为什么以下Haskell代码在GHCi下终止:
let thereExists f lst = (filter (==True) (map f lst)) /= []
thereExists (\x -> True) [1..]
Run Code Online (Sandbox Code Playgroud)
我没想到过滤器的调用永远不会完成,因为它的第二个参数是无限的,我不认为比较可能发生在lhs完全计算之前.发生了什么?
我想测试一个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
我正在编写一个函数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)
有人可以向我解释如何解决这个问题以及错误意味着什么?
我正在教授一门关于移动应用程序开发的大学课程,并希望向我的学生介绍一个用于App Engine的REST框架,以帮助他们为他们正在构建的Android应用程序进行数据存储.任何人都可以推荐符合以下条件的App Engine Java REST框架:
一定有:
很高兴有:
不重要:
从我的网络搜索,Restlet看起来最好.我还应该考虑其他任何框架吗?
我试图提取与显示的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) 我想知道如何缩短我的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属性值,但这在其他情况下不起作用,例如描述.处理这个问题的正确方法是什么?
这是一个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) 我正在编写语音助手,希望能够在 Spotify 中启动搜索结果。为了了解如何连接到 Spotify 和其他应用程序,我正在使用Google 的媒体控制器测试应用程序,它被描述为执行以下操作:
创建一个连接到 MediaBrowserService 的简单 MediaController 以测试应用间媒体控件。
此应用程序可与通用 Android 音乐播放器示例或任何其他实现媒体 API 的应用程序配合使用。
当我运行该应用程序时,它将 Spotify 标识为提供MediaBrowserService,但是当我尝试通过该应用程序连接到 Spotify 时出现错误:
这是连接代码:
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
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.
(>)作为最小完整定义被排除的决定是任意的,还是我遗漏了一些东西?