我正在考虑开发一个系统来对嵌套(但树状)数据执行高度并行的查询。潜在用户是数据分析师(特别是物理学家),而不是程序员。对于用户界面,我想使用一种众所周知的查询语言来避免新语言的激增。
大多数数据的结构是这样的(想象以下数十亿event结构的模式):
event: struct
|
+--- timestamp: bigint
+--- missing energy: float
+--- tracks: array of struct
| |
| +--- momentum: float
| +--- theta angle: float
| +--- hits: array of struct
| |
| +--- detector id: int
| +--- charge: float
| +--- time: float
| +--- ...
+--- showers: array of struct
|
+--- ...
Run Code Online (Sandbox Code Playgroud)
数据库是只读的,大多数查询是这样的:
等等。这些查询的共同点是,它们都解析为每个事件的一个标量,尽管它们会深入研究结构数组来做到这一点。它们跨这些数组的过滤、转换子集执行类似“reduce”的操作(通常fold在 Scala …
我有一个在许多项目中使用的标准化声明性 Jenkinsfile。我已将整个管道移动到一个库中,因此我的 Jenkinsfile 如下所示:
@Library('default_jenkins_libs') _
default_pipeline();
Run Code Online (Sandbox Code Playgroud)
库(var/default_pipeline.groovy):
def call() {
pipeline {
node { <snip> }
stages {
stage('Lint and style') {
steps {
//stuff
}
}
//etc...
stage('Post-build') {
steps {
PostBuildStep();
}
}
}
}
def PostBuildStep() {
echo 'Running default post-build step';
}
Run Code Online (Sandbox Code Playgroud)
我希望能够向 Jenkinsfile 中的实际管道代码添加定义,如下所示:
@Library('default_jenkins_libs') _
def PostBuildStep() {
echo 'Running customized post-build step'
//do custom stuff
}
default_pipeline();
Run Code Online (Sandbox Code Playgroud)
我一直无法弄清楚如何做到这一点。我怀疑这可以通过库调用 Jenkinsfile 表示的对象并调用它的“PostBuildStep()”来实现,可能像“parent.PostBuildStep()”,但我没有类结构/命名参考。
有什么建议?最重要的是,我想要一个标准化的管道,它可以通过库的更改来整体更改,但仍然可以对使用它的作业进行一些控制。
TIA
如何命名函数以清楚地反映它们遵循声明性范式?
上下文:我最近开始致力于创建以声明方式工作的库,但我很难提出反映它的命名约定。过去,我创建了名称类似于 的命令式函数createThing,但我发现很难在函数名称中简洁地传达“做必要的事情以返回Thing看起来像 ____”的想法。
理想情况下,我想遵循正式的标准或既定的命名约定。否则,我希望至少从预先存在的代码库中找到一些指导。
我正在尝试实现 Navigator 2.0 方法。我唯一无法工作的是按下后退按钮。当我按下后退按钮时,应用程序只是退出而不会转到上一页。我尝试了 WillPopPage 小部件,但后退按钮绕过了它。
这是一个不适用于背压的示例代码。
import 'package:flutter/material.dart';
main(List<String> args) {
runApp(TestApp());
}
class TestApp extends StatefulWidget {
@override
_TestAppState createState() => _TestAppState();
}
class _TestAppState extends State<TestApp> {
bool go = false;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Navigator(
pages: [
// page 1
MaterialPage(
child: W1(onTapped: () {
setState(() => go = true);
}),
),
// page 2
if (go) MaterialPage(child: W2()),
],
onPopPage: (route, result) {
if (!route.didPop(result)) return false;
go = false;
return …Run Code Online (Sandbox Code Playgroud) 题
如上所述,您有任何提示可以帮助理解/理解/获取您的头脑声明性编程语言吗?
或者它只是一个案例,你要沉浸在语言和它的语法中,直到它渗透,直到你得到你获得它的黄金时刻.这不是一个真正的选择,因为我不能再连续几天将自己锁在一个房间里,在这个主题上仔细研究了六本不同的书(责任就是他们所有的)
那么,当你处理声明性语言时,任何有助于你的提示或技巧,任何传递的见解?
PS我个人会首先回答" 闭嘴并投入工作 " 的第一个答案.
背景
当我第一次开始拧代码时,我才13岁(基本上,在我的姐妹Oric-1上).
从那以后,我一直在使用许多新概念和许多不同的语言,尽我所能,我很快占上风.面向对象?没打扰.事件驱动的范例?抽我一把腌鱼,我会回来吃早餐.
猫头鹰,Mfc,ActiveX,Vb3,4,5和6,VB.Net,Pascal,Delphi,C,C++和C#.没有人阻挡我,至少不会很长时间.
然而,最近我的完美成绩已经受到了一些打击.
几个星期前,我把自己投入了Xaml,伙计们,我比游泳更沉没.
我认为我的主要问题是它是声明性的.我所有的其他编程技巧都是程序性的.我之前用MSBuild打过这个块,我可以复制一些如何让MSBuild工作的例子,但是从头开始把它放在一起就会丢失.
回到Xaml,目前我疯狂地尝试将触发器连接到属性并获得我需要的效果.
我可以尽快在这里发布我的特定Xaml问题.现在我问这个一般的"声明性编程"问题.
PS不,我实际上并不是这么自大.是的,当我第一次点击OO并且第一次编写一个事件驱动的UI(Windows 3.11上的VB3)时,我偶然发现了.
编辑
它开始沉沦了,在这个领域让我这么远的坚韧得到了回报,它只需要花费很多时间!
...我觉得我这个东西太老了...:)
基本上,我正在寻找一种最不常见的分母声明式GUI语言,它非常适合用JavaScript转换为HTML/CSS,使用Python转换为wxPython,使用C#转换为WinForms ...强调最小公分母.否则,我完全清楚这几乎是不可能的.基本上,JSON用于声明性GUI而不是数据.
哦是的,真正的踢球者:没有XML.期.理想情况下,语法类似于Markdown,它看起来不像代码.
如果您不知道任何此类事情,您可以发布一些关于您认为它应该是什么样子以及您认为它应该(或可能)如何工作的想法,因为我打算自己创建一个.我只是确保我不会重新发明轮子.
我正在阅读Tomas Petricek和Jon Skeet的'Functional Programming',我理解声明和命令式编程之间的区别.
我想知道的是原始运算符和函数是如何实现的,是由命令式运算符和函数构造的声明性语言.
干杯
AWC
language-agnostic programming-languages functional-programming declarative imperative
我设法为给定的句子构建了解析树,这里的句子是:"那个人回家了."
T = s(np(det(the), n(man)), vp(v(went), np(n(home))))
Run Code Online (Sandbox Code Playgroud)
1)如何使用短语/ 2?
如何使用prolog翻译逻辑语言中的句子? - 类似于我的需要,但它的解决方案对我不起作用.
2)我想用语法模式映射它并得到单词标签.
Det=the,N(Subject)=man,V=went,N(Object)=home
有没有办法用给定的树集结构映射这个树并识别语法.如何使用解析树来识别主语,动词,宾语,语法模式以及生成目标语言句子.
稍后编辑..我试过这个代码,它给出了相当大的答案.对此代码的任何建议.
sent("(s(np(n(man))) (vp(v(went)) (np(n(home)))))").
whitespace --> [X], { char_type(X, white) ; char_type(X, space) }, whitespace.
whitespace --> [].
char(C) --> [C], { char_type(C, graph), \+ memberchk(C, "()") }.
chars([C|Rest]) --> char(C), chars(Rest).
chars([C]) --> char(C).
term(T) --> chars(C), { atom_chars(T, C) }.
term(L) --> list(L).
list(T) --> "(", terms(T), ")".
terms([]) --> [].
terms([T|Terms]) --> term(T), whitespace, !, terms(Terms). …Run Code Online (Sandbox Code Playgroud) 我需要检查Haskell,如果一个四位数是一个回文,问题是我不能使用列表,尽管有一个固定的数字,我应该使用递归.我一直在想这个问题,我无法使用递归获得解决方案.我能得到的最接近的是:
pldrm :: Integer -> Bool
pldrm x
|x > 9999 = False
|x > 999 = (div x 1000 == mod x 10) && (mod (div x 100) 10) == div (mod x 100) 10
|otherwise = False
Run Code Online (Sandbox Code Playgroud)
你有什么主意吗?谢谢
我有一个大熊猫的车辆坐标数据框(多天来自多辆车).对于每辆车和每天,我做两件事:要么对它应用算法,要么如果它不满足某些标准则完全从数据集中过滤掉它.
为了实现这一点,我使用df.groupby('vehicle_id', 'day')和然后.apply(algorithm)或.filter(condition) 在哪里,algorithm并且condition是接收数据帧的函数.
我希望我的数据集(涉及多个.apply和.filter步骤)的完整处理以一种声明的方式写出来,而不是强制循环遍历这些组,整个目标看起来像:
df.group_by('vehicle_id', 'day').apply(algorithm1).filter(condition1).apply(algorithm2).filter(condition2)
当然,上面的代码是不正确的,因为.apply()并.filter()返回新的数据帧,这正是我的问题.他们将所有数据返回到一个数据帧中,我发现我已经.groupby('vehicle_id', 'day')连续申请了.
有没有一种很好的方式可以写出来,而不必一遍又一遍地按相同的列分组?
declarative ×10
dart ×1
dataframe ×1
dcg ×1
flutter ×1
groovy ×1
haskell ×1
imperative ×1
jenkins ×1
list ×1
palindrome ×1
pandas ×1
parsing ×1
prolog ×1
sql ×1