来自Cesarini的"Erlang编程"练习3-2
当我通过"Erlang编程"时,我得到了奇怪的列表创建问题.从练习3-2开始,我写了两个类似的功能.
create( 0 ) -> [];
create( N ) when N > 0 -> [ N | create( N-1 ) ].
reverse_create( 0 ) -> [];
reverse_create( N ) when N > 0 -> [ reverse_create( N-1 ) | N ].
Run Code Online (Sandbox Code Playgroud)
所以create(3)就像我期望的那样生成.
exercise3:创建(3).
[3,2,1]
但是reverse_create不会生成我期望的列表.
exercise3:reverse_create(3).
[[[[] | 1] | 2] | 3]
我需要更改什么才能使reverse_create(3)返回[1,2,3]?谢谢你的解释.
使用XMLRoot/XMLElement和使用Serializable()属性有什么区别?我怎么知道何时使用?
javascript/jQuery中有什么东西可以检查变量是否设置/可用?在php中,我们isset($variable)用来检查这样的东西.
谢谢.
我有两个简单的程序,服务器和客户端,都在localhost.我想要做的是通过套接字将视频从服务器流式传输到客户端,客户端可以使用套接字的filediscriptor来播放它.首先,我尝试发送一些消息,客户端可以接收它.之后,我将视频的几个字节从服务器的卡发送到客户端.客户端可以接收这些字节但无法播放.有谁知道如何解决这个问题?
这是我的服务器和客户端代码片段:
服务器:
//Receive request from client.
Socket client=serversocket.accept();
System.out.println("accept");
//Receive client message.
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
String str=in.readLine();
System.out.println("read:"+str);
//Send message to client.
//PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
//out.println("server message");
FileInputStream fis=new FileInputStream("/sdcard/toystory3.3gp");
byte buffer[]=new byte[2000];
fis.read(buffer,0,20);
DataOutputStream out=new DataOutputStream(client.getOutputStream());
out.write(buffer,0,20);
in.close();
out.close();
client.close();
System.out.println("close");
Run Code Online (Sandbox Code Playgroud)
客户:
Socket socket=new Socket("127.0.0.1",4444);
String message="Initial"+"\r\n";
//Send message to server.
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
//Receive message from server.
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg=br.readLine();
//ParcelFileDescriptor pfd=ParcelFileDescriptor.fromSocket(socket);
//MediaPlayer m=new MediaPlayer();
//m.setDataSource(pfd.getFileDescriptor());
//m.prepare();
//m.start(); …Run Code Online (Sandbox Code Playgroud) 我是Haskell和Parsec的新手.为了更多地了解语言和特定库,我正在尝试创建一个可以解析Lua保存的变量文件的解析器.在这些文件中,变量可以采用以下形式:
varname = value
varname = {value,value,...}
varname = {{value,value},{value,value,...}}
我已经为每种类型创建了解析器,但是当我将它们与选择<|>运算符串在一起时,我得到了一个类型错误.
Couldn't match expected type `[Char]' against inferred type `Char'
Expected type: GenParser Char st [[[Char]]]
Inferred type: GenParser Char st [[Char]]
In the first argument of `try', namely `lList'
In the first argument of `(<|>)', namely `try lList'
Run Code Online (Sandbox Code Playgroud)
我的假设是(虽然我在文档中找不到)传递给选择运算符的每个解析器必须返回相同的类型.这是有问题的代码:
data Variable = LuaString ([Char], [Char])
| LuaList ([Char], [[Char]])
| NestedLuaList ([Char], [[[Char]]])
deriving (Show)
main:: IO()
main = do
case (parse varName "" "variable = {{1234,\"Josh\"},{123,222}}") of
Left …Run Code Online (Sandbox Code Playgroud) 我在磁盘上有一个图像文件,我正在调整文件大小并将其作为新的图像文件保存回磁盘.为了这个问题,我没有将它们带入内存以便在屏幕上显示它们,只是为了调整它们并重新保存它们.这一切都很好.但是,缩放后的图像上有如下所示的工件:android:运行时调整大小的图像质量
它们会因为这种失真而被保存,因为我可以将它们从磁盘上取下并在计算机上查看它们,但它们仍然存在同样的问题.
在将图像加载到Bitmap对象以将位图解码到内存时,我使用类似于此奇怪的内存不足问题的代码:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imageFilePathString, options);
int srcWidth = options.outWidth;
int srcHeight = options.outHeight;
int scale = 1;
while(srcWidth / 2 > desiredWidth){
srcWidth /= 2;
srcHeight /= 2;
scale *= 2;
}
options.inJustDecodeBounds = false;
options.inDither = false;
options.inSampleSize = scale;
Bitmap sampledSrcBitmap = BitmapFactory.decodeFile(imageFilePathString, options);
Run Code Online (Sandbox Code Playgroud)
然后我正在进行实际缩放:
Bitmap scaledBitmap = Bitmap.createScaledBitmap(sampledSrcBitmap, desiredWidth, desiredHeight, false);
Run Code Online (Sandbox Code Playgroud)
最后,新调整大小的图像将保存到磁盘:
FileOutputStream out = new FileOutputStream(newFilePathString);
scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
Run Code Online (Sandbox Code Playgroud)
然后,正如我所提到的,如果我将该文件从磁盘中拉出来并查看它,它就会将质量问题链接到上面并且看起来很糟糕.如果我跳过createScaledBitmap并将samplesSrcBitmap直接保存回磁盘就没有问题,似乎只有在大小改变时才会发生.
我已经尝试过,正如您在代码中看到的那样,设置inDither为false,如http://groups.google.com/group/android-developers/browse_thread/thread/8b1abdbe881f9f71所述,并在上面的第一个链接帖子中提到.这并没有改变任何事情.另外,在我链接的第一篇文章中,罗曼盖伊说:
不要在绘图时调整大小(这将是非常昂贵的),尝试在屏幕外位图中调整大小并确保位图为32位(ARGB888). …
这里的一些人告诉它是不可能的,这里的一些人告诉我们可能有一个版本的机器代码用于模板化函数的所有不同模板参数,所以我认为打开关于这个特定事项的线程是有利可图的,如果没有这种可能性,如果存在的话,在什么情况下我们可以依靠它?下面提到的两个主题中都特别考虑了一个例子:
template<size_t num>
struct Elements{
public:
SomeType elements[num];
};
template<size_t num>
void print(const Elements<num> & elements,size_t size){
//all instances do exactly same thing and with regard to Size that determines the size of object
}
Run Code Online (Sandbox Code Playgroud)
当然还有价值传递版本:
template<size_t num>
void print(const Elements<num> elements,size_t size){
//all instances do exactly same thing and with regard to Size that determines the size of object
}
Run Code Online (Sandbox Code Playgroud) 我的最终目标是拥有一个在运行时刷新其内容的JList,我已经找到了一个解决方案,可以在这篇文章中使用SO,但是我很好奇为什么我最初的想法没有.
截至目前,我有类似这样的设置,它的工作原理:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
Run Code Online (Sandbox Code Playgroud)
以下是我最初的计划.我希望有一个实现ListModel的类作为参数传递,希望它能刷新JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
Run Code Online (Sandbox Code Playgroud)
要么
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Run Code Online (Sandbox Code Playgroud)
这些工作都没有,这让我很困惑.这些最后两种方法是如何工作的,代码是如此清晰.
谢谢.
我正在WebBrowser control浏览登录页面并下载文件.由于我无法使用控件自动管理下载,因此我正在使用WebClient该类来尝试实现此目的.
问题是,由于WebClient浏览器不在同一个上下文/会话中,我正在下载的是安全错误屏幕.
我如何可以传递的范围内任何想法WebBrowser会话到WebClient?
一旦Boost库(我已经读过十个Boost库被认为是标准库的一部分)成为标准库的一部分 - 它是否会保留它的boost命名空间或代码最终会在std命名空间中?
如果是后者 - 你将如何解决代码中潜在的命名空间冲突.
干杯.