真正的语言能用一句代码输出三角形

n是自然数,在你使用最多的语言中,如何用一句代码输出包含n行字符构成的如下形状(可以使用事实上的标准库,例如C++的Bootstrap等;格式化的换行是允许的):

     *
    ***
   *****
  *******
 *********
***********

该语言必定满足:

  1. 基本的数据集操作,如range, map

  2. 基本的lambda表述

C#:

Console.WriteLine(String.Join("
",
    (from i in Enumerable.Range(1, n)
     select new String((Enumerable.Repeat(' ', n - i).
         Concat(Enumerable.Repeat('*', 2 * i - 1))).ToArray())).ToArray()));

JavaScript(使用underscope):

console.log(_.map(_.range(1, n + 1), function(i) {
    return _.map(_.range(0, n - i), function() { return ' '}).join("") +
     _.map(_.range(0, 2 * i - 1), function() { return '*'}).join("")
    }).join("
"));

Python:

print "
".join(map(lambda i: (' ' * (n - i) + '*' * (2 * i - 1)), range(1, n + 1)))

F#:

printfn "%s" ([1..n] 
|> List.map (fun i -> ((String.replicate (n - i) " ") + (String.replicate (2 * i - 1) "*")))
|> List.fold (fun sum x -> sum + x + "
") "")

欢迎补充。还有,忍住不黑Java。

原文地址:https://www.cnblogs.com/zhengwenwei/p/3178507.html