我知道我可以访问以这种方式编程使用母版页的页面的head部分(在代码后面):
这只是一个例子(我想插入脚本和样式等):
this.Header.Title = "I just set the page's title";
Run Code Online (Sandbox Code Playgroud)
在aspx文件本身中是否有一种以声明方式执行此操作的简单方法?
有时,将客户端脚本或样式声明或链接插入外部资源会很方便.
我使用Java在Swing上进行客户端开发.我喜欢Swing; 我相信它是那里更好的GUI框架之一.然而,我想念的是对声明性验证的支持.喜欢XForms的这个片段.
您是否知道任何允许以声明方式验证表单中数据输入的库,而不是为每个组件编写丑陋的验证文档侦听器?
我正在编写一个小的sqlalchemy垫片来从MySQL数据库导出数据,其中包含一些轻量级数据转换 - 主要是更改字段名称.我当前的脚本运行正常,但要求我基本上在类声明中两次描述我的模型,一次作为字段名称列表进行迭代.
我试图弄清楚如何使用内省来识别作为列访问器的行对象的属性.以下工作几乎完美:
for attr, value in self.__class__.__dict__.iteritems():
if isinstance(value, sqlalchemy.orm.attributes.InstrumentedAttribute):
self.__class__._columns.append(attr)
Run Code Online (Sandbox Code Playgroud)
除了我的to-many关系访问器也是sqlalchemy.orm.attributes.InstrumentedAttribute的实例,我需要跳过这些.在检查班级词典时,有没有办法区分这两者?
我在sqlalchemy内省上发现的大多数文档都涉及到metadata.table,但由于我正在重命名列,因此这些数据并不是可以轻易映射的.
我想到了一个可以动态选择可用的OSGi服务的智能系统.也就是说,根据某些运行时参数选择一个或另一个实现.例如,通知运行的算法,该算法在多次迭代后更改运算符,或者取决于系统中的负载平衡或其他任何操作.
while(stopCriterion){
operator.doSomething(); //There exist many operator implementations
}
Run Code Online (Sandbox Code Playgroud)
我的第一种方法是使用DS公开服务并使用0..n和动态策略绑定服务.然后,从外部智能组件,通知算法在每次迭代中使用哪种服务(使用EventAdmin,可能?).
operator[selected].doSomething();
Run Code Online (Sandbox Code Playgroud)
当必须执行许多不同服务实现的许多实验时,这可以帮助我降低复杂性.此外,我计划将远程服务规范与Eclipse Communication Framework一起用于研究分布式算法和那些东西,因此也可以在执行时间内动态显示新实现
但是,我不知道这是一个好主意还是存在另一种更好的机制来动态选择使用哪种实现.我认为使用ServiceTracker而不是DS不是一个好选择,但我愿意接受建议:)
提前致谢.
我试图反编译包含JUnit测试的.class文件.我读了字节码,但是我没有看到@Test注释的任何线索(它在java源代码中使用).
作为元数据,如何在字节码中表示注释?
我的教授将此作为Prolog的一个例子.这是一个解决河内之塔拼图的程序,你必须将一堆磁盘移动到另一个挂钩,方法是将一个磁盘移动到另一个磁盘上,而不是在较小的磁盘上放置一个更大的磁盘.
现在,我不喜欢那个节目.我被告知Prolog是用于声明性编程的.我不想编程如何解决问题,我想用Prolog写下问题是什么.然后让Prolog解决它.
到目前为止我的努力可以在下面找到.有两种类型的我使用列表,一个行动顺序是这样表示:[[1,2],[3,1]]
; 这将是"将顶部磁盘从挂钉1移动到挂钉2,将磁盘从挂钉3移动到挂钉1".我的第二种类型的列表是一个状态,例如,如果有三个挂钩[[1,2,3], [], []]
意味着第一个挂钩上有三个磁盘.较小的磁盘具有较小的数字,因此内部列表的前面是堆栈的顶部.
% A sequence of actions (first argument) is a solution if it leads
% from the begin state (second argument) to the End state (third argument).
solution([], X, X).
solution([[FromIdx | ToIdx] | T], Begin, End) :-
moved(FromIdx, ToIdx, Begin, X),
solution(T, X, End).
% moved is true when Result is the resulting state after moving
% a disk from FromIdx to …
Run Code Online (Sandbox Code Playgroud) 我不太了解命令式和声明性编程范式之间的区别.我读到Haskell是一种声明性语言.在某种程度上,我会说是的,但是在命令的定义方面有一些困扰我的东西.
当我有一个数据结构并使用Haskell的函数进行转换时,我实际上只是告诉了要转换的内容.所以我将datastruct作为函数的参数给出,并对结果感到满意.
但是,如果没有功能真正满足我的需求呢?
我会开始编写一个自己的函数,它希望datastruct作为参数.之后,我将开始编写如何处理数据结构.因为我只能调用本机Haskell函数,所以我仍然使用声明性范例吗?但是,当我开始使用"if语句"时.这不会结束声明性质,因为我要告诉程序如何从那一点做事情?
这是我的课堂问题之一.
我能够用if-else创建我自己的Prolog程序,但我被告知我的程序并不是完全声明的,因为它是Prolog中最基本的原则之一.
这是我的代码
%start with :- go.
is_spicy :-
write('Do you want spicy? (yes/no)'),
read(Preference),
( Preference == yes -> recommend("Curry"); recommend("Kurma") ).
is_fry :-
write('Do you want fry food? (yes/no)'),
read(Preference),
( Preference == yes -> recommend("StirFry"); recommend("Chicken") ).
is_chili :-
write('Do you want chili? (yes/no)'),
read(Preference),
( Preference == yes -> recommend("Sambal"); recommend("Singgang") ).
recommend(Food) :- write('We recommend you '), write(Food).
go :-
write('Which food type do you prefer? (indian, chinese, malay): '),
read(FoodType),
(
FoodType == indian …
Run Code Online (Sandbox Code Playgroud) 我已经制作了这个社区Wiki,因为有些人可能认为它可以辩论,其他人可能会认为这是一个用词来表示他们真正意义的问题(换句话说,这是一个意见问题,这是一个意见问题).
关于声明性编程的SO有一个普遍的问题,它有一些很好的答案.
但是我对微软福音传道者的这篇博文有点不满.
声明性编程的一个优点是,您可以指出您想要做什么,而不是如何做.
到目前为止,这么好 - 事实上,这与SO问题上接受的答案完全一致.
但是请查看有关"服务实施"的部分,
您可以查看几十行xaml代码,并能够确定如何配置WCF服务以及如何定义相应的工作流.
看了一些例子后,让我简单回答一下,说"不,我不能".但是,不要轻率地解雇这些东西,让我们看看文档.
这需要一段时间,但最终现实已经赶上了讽刺 ......但这不是重点 - 当然他们并没有认真地建议这样做来揭露像添加这样的微不足道的东西.我也不是在抱怨荒谬的冗长,以及任何人都会手写这样的东西的奇怪想法 - 它看起来更像是编译器的输出而不是人类可读的语言.
对我来说,难题是声称这是"声明性的".然而它的核心是一个任务声明.
还有更多:
声明性服务在XAML中以声明方式定义,并提供另一层抽象.基本上,您可以通过定义服务要执行的操作而不是如何执行操作来创建服务模型.整个服务可以以声明方式定义,包括操作的实现.
因此,如果我们说声明性或声明性三次,那就使它成为声明性的.疑难杂症.如果我们说出"你想做什么而不是怎么做"的神奇短语,那么我们可以忽略一点,在下一句话中,我们将指定"操作的实施",所以我们我会准确地说明如何做到这一点.
该页面中的示例是:
<wma:Sequence>
<wma:WriteLine Text ='[String.Concat(String.Concat(String.Concat(String.Concat("Add(", CType(op1, Object)), ","), CType(op2, Object)), ") called")]' />
<wma:Assign x:TypeArguments="xs:Int32" To="[result1]" Value="[op1 + op2]" />
</wma:Sequence>
Run Code Online (Sandbox Code Playgroud)
也就是说,整个事情(包括我从WF示例中删除的大量垃圾)恰恰相当于:
void Add(int op1, int op2, out int result1)
{
Console.WriteLine("Add(" + op1 + ", " + op2 + ") called");
result1 = op1 + op2; …
Run Code Online (Sandbox Code Playgroud) 代码的出现第1天需要以一种或那种形式循环一长串括号等((((())(())(((()))((
.这个想法是(
上升到一层,)
下到一层,目标是打印
使用for循环的命令式解决方案很简单(以Python为例):
def main():
flr = 0
basement = False
for idx, elt in enumerate(text):
flr += {
"(": 1,
")": -1
}.get(elt)
if flr < 0 and not basement:
print("first basement pos:", idx + 1)
basement = True
print("final floor:", flr)
Run Code Online (Sandbox Code Playgroud)
递归函数解决方案稍微复杂一点,但仍然不太难.
def worker(flr, txt, idx, basement):
flr += {"(": 1, ")": -1}[ txt[0] ]
if not (len(txt) - 1): return flr
if flr < 0 and not basement:
print("first …
Run Code Online (Sandbox Code Playgroud) declarative ×10
java ×3
prolog ×2
annotations ×1
asp.net ×1
bytecode ×1
clpfd ×1
dcg ×1
decompiling ×1
factor-lang ×1
haskell ×1
header ×1
master-pages ×1
osgi ×1
python ×1
recursion ×1
service ×1
sqlalchemy ×1
swing ×1
validation ×1
wcf ×1