我对那个函数式编程范例很陌生,但到目前为止我喜欢它.自从我进入游戏开发以来,我想尝试用纯函数编程风格编写一些游戏.我不介意语言 - 无论是Erlang,Haskell,Lisp,还是Ruby(我发现它支持函数式编程特性).
嗯,很明显,要学习函数式编程(事实上,任何事情),最好的建议就是学习函数式语言和编程.但我正在寻找的是在游戏和游戏引擎(2D或3D)中使用函数式编程的一些资源.
那么,你知道任何函数式编程文章/书籍/博客/在实际游戏中使用它,或者用函数式编程语言设计简单的游戏引擎,以及在这个功能环境中游戏和游戏引擎之间的所有交互吗?
请不要建议像"只是开始编写功能简单的东西,然后它会逐渐出现".正如我之前所说,很明显,但我在这里要求的是关于这个主题的一些资源,如果有的话.谢谢!
我在WPF应用程序的单独dll中有一个BaseSkin和多个UserSkins.
根据使用应用程序的用户,基础外观和其中一个用户外观将合并到资源字典中并加载以供应用程序使用.
我的目标是能够在BaseSkin文件中指定样式,然后在特定的UserSkin文件上能够覆盖它,更改我需要的任何属性.
我知道我可以通过使用这样的BasedOn属性来实现这一点:
<Style x:Key="ButtonBg" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
<Style x:Key="CustomButtonBg" TargetType="{x:Type Button}" BasedOn="{StaticResource ButtonBg}">
<Setter Property="Background" Value="Blue"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
问题是现在元素必须具有StyleButtonBg样式,实际上可能无法实现.有没有办法让两个样式使用相同的键(ButtonBg),并且当它们合并时,应用程序在User用户中查找名为ButtonBg的样式,如果不存在,请使用base中的样式?
我想如果我可以将BasedOn属性中的程序集名称指向BaseSkin文件,当我给它们相同的密钥时,我可以避免命名错误,但我找不到任何方法来做到这一点.其他选项只是强制执行每个样式,即使没有任何变化,或者在皮肤中以编程方式检查,但这些是最后的度假胜地.
我的代码有一个非常奇怪的错误.事实上,根本没有错误,只是调试器以"程序接收信号:"EXC_BAD_ACCESS""消息开始.谁能帮我?我完全糊涂了......谢谢.
-(NSString *)fullNameForPhone:(NSString *)ph withAlternativeText:(NSString *)text
{
ABAddressBookRef addressBookRef = ABAddressBookCreate();
NSLog(@"create addressBookRef");
NSString *stringToReturn = text;
CFArrayRef allPeopleRef = ABAddressBookCopyArrayOfAllPeople(addressBookRef);
NSLog(@"create allPeopleRef");
CFIndex nPeople = ABAddressBookGetPersonCount(addressBookRef);
int i = 0;
BOOL nameFound = NO;
while ((i < nPeople) && (!nameFound))
{
ABRecordRef recordRef = CFArrayGetValueAtIndex(allPeopleRef, i);
NSLog(@" create recordRef");
CFStringRef allRecordPhonesRef = ABRecordCopyValue(recordRef, kABPersonPhoneProperty);
NSLog(@" create allRecordPhonesRef");
CFIndex nPhones = ABMultiValueGetCount(allRecordPhonesRef);
int currentPhone = 0;
for (currentPhone = 0; currentPhone < nPhones; currentPhone++)
{
CFStringRef currentPhoneNumberRef = ABMultiValueCopyValueAtIndex(allRecordPhonesRef, currentPhone); …Run Code Online (Sandbox Code Playgroud) 我们使用chilkatdotnet.dll来做到这一点.该DLL有一个名为GetEmail(url)的函数,它将执行url并返回由url呈现的html文本.例如,如果我们说GetEmail('www.stackoverflow.com')它将返回与我们点击查看源时获得的html文本相同的html文本.我们正在尝试使用.NET 2.0实现相同的功能.
如果您有任何想法,请告诉我.
谢谢,斯里达尔.
经过多年的Java编程,我正在学习.Net.在Eclipse中,我们使用Ctrl Shift R打开项目中的任何资源.在Visual Studio 2008中是否存在类似的击键,或者最好使用"在文件中查找"?
我有一个控制器,我的所有控制器都继承,我需要为每个控制器请求执行一些代码.我尝试了以下方法:
protected override void Execute(System.Web.Routing.RequestContext requestContext)
{
if (Session["mallDetected"] == null)
{
Session["mallDetected"] = DateTime.Now.Ticks;
IList<Mall> malls = Mall.FindNearestByIp(Request.UserHostAddress);
if (malls.Count > 0)
{
Session["mall"] = malls[0];
}
}
base.Execute(requestContext);
}
Run Code Online (Sandbox Code Playgroud)
但显然会在执行方法中没有会话状态,直到调用base.Execute()之后,这对我不起作用.有没有可以在ASP.NET MVC中为每个请求执行此会话代码的地方?
今天我反对这样一个事实,即sys.exit()从一个子线程调用并不会杀死主进程.我以前不知道这个,这没关系,但我需要很长时间才能意识到这一点.它本来可以节省很多时间,如果sys.exit(msg)打印msg的话stderr.但事实并非如此.
事实证明,这不是我的应用程序中的真正错误; 它sys.exit(msg)以一种有意义的错误调用了一个有意义的错误 - 但我只是看不到这一点.
在文档中sys.exit()说明:
"[...]打印任何其他对象sys.stderr并导致退出代码为1"
对于来自子线程的调用,情况并非如此,其中sys.exit()显然表现为thread.exit():
"引发SystemExit异常.当未捕获时,这将导致线程以静默方式退出"
我认为当程序员想要sys.exit(msg)打印错误消息时,应该只打印它 - 独立于调用它的位置.为什么不?我目前看不出任何理由.至少在文档中应该有一个暗示,sys.exit()即消息不是从线程打印的.
你怎么看?为什么错误消息会隐藏在线程中?这有意义吗?
最好的祝福,
Jan-Philip Gehrcke
我从Visual Studio 2010中获得了Code Contracts,但我无法ccrewrite.exe从命令行做任何有用的事情.这是一个示例应用程序:
using System.Diagnostics.Contracts;
public class Dummy
{
public static void Main(string[] args)
{
Contract.Requires(args.Length > 0);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我编译代码并在其上运行ccrewrite.exe:
> csc /debug+ /D:CONTRACTS_FULL Dummy.cs
> ccrewrite /o:RewrittenDummy.exe Dummy.exe
elapsed time: 61ms
Run Code Online (Sandbox Code Playgroud)
RewrittenDummy.exe之后没有文件.
我已经尝试了很多选项,但没有任何区别.我注意到的一些事情:
我已经尝试过警告和冗长,这根本没有帮助我做错了什么?
我创建了一个淡化元素背景颜色的脚本.我使用setTimeout()每5毫秒对颜色进行一次增量更改.如果我只是一次淡化一件事的背景颜色,那么该脚本效果很好,但如果我有50个元素,我一下子都褪色,速度比5毫秒慢得多,因为所有并发setTimeout()一次运行.例如,如果我一次褪色50个元素,通常应该在1秒内执行的淡入淡出可能需要30秒.
我有什么想法可以克服这个问题?
这是脚本,以防任何人有想法:
function fadeBackground(elementId, start, end, time) {
var iterations = Math.round(time / 5);
var step = new Array(3);
step[0] = (end[0] - start[0]) / iterations;
step[1] = (end[1] - start[1]) / iterations;
step[2] = (end[2] - start[2]) / iterations;
stepFade(elementId, start, step, end, iterations);
}
function stepFade(elementId, cur, step, end, iterationsLeft) {
iterationsLeft--;
document.getElementById(elementId).style.backgroundColor
= "rgb(" + cur[0] + "," + cur[1] + "," + cur[2] + ")";
cur[0] = Math.round(end[0] - step[0] * iterationsLeft);
cur[1] = Math.round(end[1] …Run Code Online (Sandbox Code Playgroud) 我正在使用带有Ruby on Rails的Paperclip将资源附加到模型,这些资产可以是任何文件类型,当前只有在资产是图像时才会生成缩略图.我希望能够为其他文件显示不同的默认图像,或者通过在上传时生成文件的缩略图,或者使用default_url设置一些内容,但到目前为止我找不到任何资源来帮助解决这个问题.我自己也没有.
我的模型如下:
class Asset < ActiveRecord::Base
has_attached_file :media,
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => S3_BUCKET,
:styles => {:thumb => "75x75>", :large => "600x800>",
:whiny => false,
:default_url => "/images/:attachment/missing.jpg"
Run Code Online (Sandbox Code Playgroud)
如果生成失败,有没有人有任何资源用于生成自定义缩略图,或者在默认URL中返回类似于:content_type的内容?我查看了源代码并且无法到达任何地方.
谢谢!
.net ×1
.net-4.0 ×1
addressbook ×1
asp.net-mvc ×1
c# ×1
ccrewrite ×1
erlang ×1
exit ×1
file-upload ×1
haskell ×1
image ×1
iphone ×1
javascript ×1
lisp ×1
paperclip ×1
python ×1
sdk ×1
settimeout ×1
sys ×1
thumbnails ×1
wpf ×1
xaml ×1