如何使用 Kusto 查询语言打印树?
How do I print a tree using the Kusto Query Language?
下面是一个快速而简单的解决方案。
如果您有更好的,请将其包含在您的答案中。
let tree_height = 15;
range i from -1 to tree_height * 2 step 2
| extend side_width = tree_height + 1 - i / 2
| extend side_space = strrep(" ", side_width)
| extend tree_part = case(i > 0, strcat("/", strrep("*", i), @"\"), " ^ ")
| project ta_da = strcat(side_space, tree_part, side_space)
^
/*\
/***\
/*****\
/*******\
/*********\
/***********\
/*************\
/***************\
/*****************\
/*******************\
/*********************\
/***********************\
/*************************\
/***************************\
/*****************************\
如果您需要一些灵感:
这是我的圣诞树:
let L=10;
range x from 1 to L step 1
| project t=strcat(strrep(' ', L-x), strrep('.', x), strrep('*', x-1))
| summarize Tree=make_list(t)
| project Tree=array_concat(pack_array(strcat(strrep(' ', L-3), make_string(127775))), Tree)
| project HappyXmas=strcat_array(Tree, '\n')
基于 Yoni 的回答 - Kusto Web Explorer 的类似实现(网络 UI 从结果网格中删除前导空格)
let tree_height = 10;
let invisible_space = '\u00AD';
range i from 0 to tree_height*2 step 2
| extend side_width = tree_height + 1 - i /2
| extend side_space = strcat_array(repeat(strcat(invisible_space,''), side_width), " ")
| project Happy_Holidays = case(i != 0, strcat(side_space, "O", strcat_array(repeat("-", i-1), ""), @"O", side_space), strcat(side_space, " O", side_space))
Result
下面是一个快速而简单的解决方案。
如果您有更好的,请将其包含在您的答案中。
let tree_height = 15;
range i from -1 to tree_height * 2 step 2
| extend side_width = tree_height + 1 - i / 2
| extend side_space = strrep(" ", side_width)
| extend tree_part = case(i > 0, strcat("/", strrep("*", i), @"\"), " ^ ")
| project ta_da = strcat(side_space, tree_part, side_space)
^
/*\
/***\
/*****\
/*******\
/*********\
/***********\
/*************\
/***************\
/*****************\
/*******************\
/*********************\
/***********************\
/*************************\
/***************************\
/*****************************\
如果您需要一些灵感:
这是我的圣诞树:
let L=10;
range x from 1 to L step 1
| project t=strcat(strrep(' ', L-x), strrep('.', x), strrep('*', x-1))
| summarize Tree=make_list(t)
| project Tree=array_concat(pack_array(strcat(strrep(' ', L-3), make_string(127775))), Tree)
| project HappyXmas=strcat_array(Tree, '\n')
基于 Yoni 的回答 - Kusto Web Explorer 的类似实现(网络 UI 从结果网格中删除前导空格)
let tree_height = 10;
let invisible_space = '\u00AD';
range i from 0 to tree_height*2 step 2
| extend side_width = tree_height + 1 - i /2
| extend side_space = strcat_array(repeat(strcat(invisible_space,''), side_width), " ")
| project Happy_Holidays = case(i != 0, strcat(side_space, "O", strcat_array(repeat("-", i-1), ""), @"O", side_space), strcat(side_space, " O", side_space))
Result