christmas tree
1
Name:
Anonymous
2008-12-24 22:21
(define (christmasTree h)
(define (foo k)
(if (< k 1)
"" (string-append " " (foo (- k 1)))))
(define (bar k)
(if (< k 1)
"\n" (string-append "*" (bar (- k 1)))))
(define (ct i)
(if (= i (+ h 1))
(string-append
(foo (- h 1))
(bar 1))
(string-append
(foo (- h i))
(bar (- (* 2 i) 1))
(ct (+ i 1)))))
(display (ct 1)))
#;1> (christmasTree 10)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
2
Name:
Anonymous
2008-12-24 22:32
>>> xmas = lambda m, c: (('*' * c).center(m)) + '\n' + xmas(m, c + 2) if c < m else '*'.center(m)
>>> tree = lambda n: xmas(n * 2, 1)
>>> print tree(10)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
3
Name:
Anonymous
2008-12-24 22:40
christmasTree h = ct 1
where ct i | i==(h+1) = foo (h-1) ++ bar 1
|otherwise = foo (h-i) ++ bar (2*i-1) ++ ct (i+1)
foo k | k>0 = " " ++ foo (k-1)
foo _ = ""
bar k | k>0 = "*" ++ bar (k-1)
bar _ = "\n"
main = putStr (christmasTree 10)
$ runhugs christmas.hs
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
4
Name:
Anonymous
2008-12-24 23:18
>>3- san, it's much nicer if you translate it into more idiomatic Haskell.
christmasTree h = ct h ++ replicate (h-1) ' ' ++ "*" where
ct 0 = ""
ct i = ct (i - 1) ++ replicate (h - i) ' ' ++ replicate (2*i-1) '*' ++ "\n"
main = putStr $ christmasTree 10
5
Name:
Anonymous
2008-12-24 23:25
>>4
main = putStrLn " *\n ***\n *****\n *******\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n *"
6
Name:
Anonymous
2008-12-24 23:26
(h-1)
(h - i)
apparently idiomatic haskell makes inconsistent use of whitespace.
7
Name:
Anonymous
2008-12-24 23:28
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
"GRUNNUR"
;
8
Name:
Anonymous
2008-12-24 23:35
sub christmas_tree($){
return join"\n",(map{(' 'x($_[0]-$_)).('*'x($_*2-1}1..$_[0]),' 'x($_[0]-1).'*','';
}
print christmas_tree(10);
9
Name:
Anonymous
2008-12-24 23:55
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *christmas_tree(int n){
char *ret = calloc(1, n * 15 + n / 2 + 1);
char *cur = ret;
for(int i = 0; i < n; ++i){
memset(cur, ' ', n - i - 1);
cur += n - i - 1;
memset(cur, '*', i * 2 + 1);
cur += i * 2 + 1;
*(cur++) = '\n';
}
memset(cur, ' ', n - 1);
cur += n - 1;
*cur = '*';
return ret;
}
int main(void){
puts(christmas_tree(10));
return 0;
}
10
Name:
Anonymous
2008-12-25 0:15
>>5
christmasTree i | i==10 = " *\n ***\n *****\n *******\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n *\n"
| i==9 = " *\n ***\n *****\n *******\n *********\n ***********\n *************\n ***************\n*****************\n *\n"
| i==8 = " *\n ***\n *****\n *******\n *********\n ***********\n *************\n***************\n *\n"
| i==7 = " *\n ***\n *****\n *******\n *********\n ***********\n*************\n *\n"
| i==6 = " *\n ***\n *****\n *******\n *********\n***********\n *\n"
| i==5 = " *\n ***\n *****\n *******\n*********\n *\n"
| i==4 = " *\n ***\n *****\n*******\n *\n"
| i==3 = " *\n ***\n*****\n *\n"
| i==2 = " *\n***\n *\n"
| otherwise = error "No."
11
Name:
Anonymous
2008-12-25 0:20
12
Name:
Anonymous
2008-12-25 4:07
>>11
Since it's Christmas, I'll tell you as a free public service; you ought to get that Alzheimer's looked at.
13
Name:
Anonymous
2008-12-25 11:44
Did you mean: Alzheimer\'s
14
Name:
Anonymous
2008-12-25 11:51
15
Name:
Anonymous
2008-12-25 12:33
>>4
christmasTree h = putStr $ unlines $ take (h + 1) $ cycle $ take h
$ iterate ((++ "**") . tail) $ replicate h ' ' ++ "*"
16
Name:
Anonymous
2008-12-25 13:20
aaaaaaaaaaaaaaaaaaaa $ aaaaaaaaaaaa
ccccccccc aaaaaaaaaa c naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
cccccccc aaaaaaaaaa ccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
ccccccc aaaaaaaaaa ccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
cccccc aaaaaaaaaa ccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
ccccc aaaaaaaaaa ccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
cccc aaaaaaaaaa ccccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
ccc aaaaaaaaaa ccccccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
cc aaaaaaaaaa ccccccccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
c aaaaaaaaaa ccccccccccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa ccccccccccccccccccc naaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaa
ccccccccc aaaaaaaaaa c
17
Name:
Anonymous
2008-12-25 16:01
>>1
(define (christmas-tree h)
(define (line n)
(display (make-string (- h n) #\ ))
(display (make-string (+ (* 2 n) 1) #\*))
(newline))
(do ((i 0 (+ i 1))) ((= i h))
(line i))
(line 0))
>>15
I lol'd.
18
Name:
Anonymous
2008-12-25 16:08
(define kikes (lambda (n) (display (string-append (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append "| " (f (- x 1))))))) (+ (* n 2) 1)) "\n" (f (- x 1))))))) n) (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append (string-append (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append "| " (f (- x 1)))))))(- x 1)) (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append "---" (f (- x 1))))))) (- n (- x 1))) "|" (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append "---" (f (- x 1))))))) (- n (- x 1))) " " (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "" (string-append "| " (f (- x 1)))))))(- x 1)) "\n") (f (- x 1))))))) n) (((lambda (le) ((lambda (f) (f f)) (lambda (f) (le (lambda (x) ((f f) x)))))) (lambda (f) (lambda (x) (if (< x 1) "|\n" (string-append " " (f (- x 1))))))) n)))))
#;1> (kikes 4)
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | ---|--- | | |
| | ------|------ | |
| ---------|--------- |
------------|------------
|
19
Name:
Anonymous
2008-12-25 16:20
20
Name:
Anonymous
2008-12-25 16:37
21
Name:
Anonymous
2008-12-25 17:17
Not this shit again. This thread stops here.
22
Name:
Anonymous
2008-12-25 17:22
>>21
At least it isn't a ``Compiling Python code with a Ruby compiler`` thread.
23
Name:
Anonymous
2008-12-25 17:28
import Control.Monad.Instances
kikes n = putStr $ unlines $ (++ [replicate (n * 3) ' ' ++ "|"])
$ (zipWith (flip (++) . ('|':)) =<< map reverse) $ map (concat . take n)
$ take (n * 2) $ iterate ((++ ["---"]) . tail) $ replicate (n * 2 - 1) "| "
24
Name:
Anonymous
2008-12-25 17:33
>>22 clearly knoweth not the correct usage of ``
faggote quotes ''.
25
Name:
Anonymous
2008-12-25 18:42
>>24
I'm pretty sure that was supposed to be two pairs of empty shell backticks.
26
Name:
Anonymous
2008-12-25 19:00
>>7
This filled me with the true
"GRUNNUR" spirit. Thanks, you guys.
27
Name:
Anonymous
2008-12-25 20:11
>>9
Now try again without leaking memory.
>>2
Not forceful enough.
28
Name:
Anonymous
2008-12-25 20:17
¤ø„¸¸„ø¤º°¨``°º¤ø„¸ „ø¤º°¨
¨°º¤ø„¸♫ Wu-Tang ♫ „ø¤º°¨ copy
¸„ø¤º°¨♪ Forever for ♫ ``°º¤ø„¸ and paste
¨°º¤ø„¸♫ LIFE ♪„ø¤º°¨ „ø¤º°¨°º¤ø„¸if you agree fuck lil wayne
29
Name:
Anonymous
2008-12-25 20:19
>>9
>calloc(1, n * 15 + n / 2 + 1);
wat
30
Name:
Anonymous
2008-12-25 20:29
>>27
get a real operating system.
31
Name:
Anonymous
2008-12-25 20:47
import java.lang.*;
public class Kurisumasu {
final int height;
public Kurisumasu(int h)
{
height = h;
}
public String toString()
{
StringBuilder sb = new StringBuilder();
final String nl = System.getProperty("line.separator", "\n");
for(int i=1; i<height; i++)
{
for(int j=0; j<height-i; j++)
sb.append(' ');
for(int j=1; j<i*2; j++)
sb.append('*');
sb.append(nl);
}
for(int j=0; j<9; j++)
sb.append(' ');
sb.append('*');
sb.append(nl);
return sb.toString();
}
public static void main(String[] args)
{
final Kurisumasu k = new Kurisumasu(10);
System.out.print(k);
}
}
32
Name:
Anonymous
2008-12-25 21:30
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M(v,s,c) (v)=malloc((s)); memset((v),(c),(s))
int main(int argc, char **argv) {
int i,n;
char *sp,*st;
if(!argv[1])
return 1;
n = atoi(argv[1]);
M(sp,n,' ');
M(st,2*(n+2),'*');
st[0]=0;
for(i=0;i<n;i++) {
sp[n-i-1]=0;
printf("%s%s",sp,st);
sp[n-i-1]=' ';
st[i]='*';
st[i+1]=0;
printf("%s\n",st);
}
sp[n-1]=0;
printf("%s*\n",sp);
return 0;
}
33
Name:
Anonymous
2008-12-25 21:36
>>31
ENTERPRISE QUALITY
However,
Use of the default package is discouraged .
34
Name:
Anonymous
2008-12-25 21:47
>>9
This segfaults for n=1000
35
Name:
Anonymous
2008-12-25 22:16
36
Name:
Anonymous
2008-12-25 22:29
37
Name:
Anonymous
2008-12-26 11:20
38
Name:
Anonymous
2008-12-26 15:25
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char ** argv) {
int i, h = atoi(argv[1] ? argv[1] : (exit(1), NULL));
char * str = malloc(h > 0 ? h * 3 : (exit(0), 0));
memset(str, ' ', h - 1);
memset(str + h - 1, '*', h * 2);
for(i = 0; i <= h; i++) {
fwrite(str + i % h, 1, h + i % h, stdout);
puts("");
}
return free(str), 0;
}
39
Name:
Anonymous
2008-12-26 17:10
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char ** argv) {
int i, h = atoi(argv[1] ? argv[1] : (exit(1), NULL));
char * str = malloc(h > 0 ? h : (exit(0), 0));
memset(str, '*', h);
for(i = 0; i <= h; i++)
printf("%*s%s\n", h, str + h - 1 - i % h, str + h - i % h) ;
return free(str), 0;
}
40
Name:
Anonymous
2008-12-26 18:15
[code] *[code]
Newer Posts