02-28-2019
OpenSCAD is another purely functional language, though it doesn't look it at first. It looks more like C, with very different constraints on where you're allowed to do what. This causes a bit of brain damage at first ("why can't I overwrite variables!?" cried a million voices) but is good at illustrating what "functional language" means in a paradigm procedural programmers can understand. It's also got a nice orthogonal set of basic vector/matrix operations.
Having fought through and learned its ways, I agree that functional syntax is often simpler and more concise. It's rarely clearer -- comments are essential. And never in my experience have they ever been faster or smaller. Functional languages rely on things like compiler optimization and caching to reduce the amount of work for a given result. This amounts to big compilers/interpreters and occasionally unpredictable amounts of overhead. Tail recursion is a wondrous thing but so easy to poison!
That's the price you pay for a language one step closer to declaring what you want instead of declaring exactly how to do it. It's not a good fit for everything.
These 2 Users Gave Thanks to Corona688 For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have a simple script that I want to run every 30 minutes but only when I execute it. I don't want it to be a crontab job.
so i have for example
date
ls -l
who
sleep 1800
The first time it executes correctly but after the first time it nevers execute back again. It should execute after... (2 Replies)
Discussion started by: elchalateco
2 Replies
2. Shell Programming and Scripting
Anyone have an idea why this if statement does not work correctly?
"test2.sh" 18 lines, 386 characters
#!/usr/bin/sh
WARNING=80
CRITICAL=95
check_it()
{
if ] || ];then
echo "YES ] || ]"
else
echo "NO ] || ]"
fi
}
check_it 80.1
check_it 81.1 (3 Replies)
Discussion started by: 2dumb
3 Replies
3. Shell Programming and Scripting
Hi,
I have a script where I am trying to set a local variable using the following,
MYVAR="$NAME"_"$NAME2".txt
where say,
NAME = one
NAME2 = two
so I want the output one_two.txt but what I am getting is,
two.txt
basically the $NAME2 is overwriting, what am I doing wrong?
... (3 Replies)
Discussion started by: walsh_j
3 Replies
4. Programming
//save in/out
int tmpin = dup(0);
int tmpout = dup(1);
//set initial input
int fdin;
if(_inputFile)
{
fdin = open(_inputFile, O_RDONLY | O_CREAT, S_IREAD | S_IWRITE);
}
else
{
//use default input
fdin = dup(tmpin);
}
int ret;
int fdout;
for(int i = 0; i... (14 Replies)
Discussion started by: AirBronto
14 Replies
5. UNIX for Dummies Questions & Answers
egrep -A 7 -m 2 -h 'Date:|Time:' *.html
this is showing only 2 line after the context of the 2nd found match. Is this a bug in grep?
egrep -A 7 -m 2 -h 'Time:' *.html - this works correctly (2 Replies)
Discussion started by: zer0
2 Replies
6. Shell Programming and Scripting
I am trying to copy 2 types of files so I can archive them. I tested with a set of commands:
touch -t $(date -d "-60 day" +%Y%m%d) WORKDIR/REF
find TARGETDIR/ -type f -maxdepth 1 -iname \*.out\* -or -iname \*.log\* ! -newer WORKDIR/REF -exec ls -l {} \;
This correctly lists any files in the... (2 Replies)
Discussion started by: prismtx
2 Replies
7. Shell Programming and Scripting
We are using Red Hat linux system.
I am transferring my rman backup files to another server.
Here is the command i am using to transfer the files.
/usr/bin/rsync -avpP --delete /xyz/xyz/ 99.99.999.99::db110bkp
Here is the rsync version.
>rsync --version
rsync version 3.0.6 ... (1 Reply)
Discussion started by: govindts
1 Replies
8. UNIX for Dummies Questions & Answers
Consider the following code:
grep -o -e '^STEAM_::\d+$' workfile3.tmp
A sample format of a valid string for the regexp would be:
STEAM_0:1:12345678
Here is an example line from the workfile3.tmp file:
465:L 01/02/2012 - 00:05:33: "Spartan1-1-7<8><STEAM_0:1:47539638><>" connected
No... (2 Replies)
Discussion started by: spinner0205
2 Replies
9. Shell Programming and Scripting
Hi
I am attempting to right a script which will read a table and extract specfic information.
LASTFAILEDJOB=/usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
cat /usr/openv/netbackup/scripts/GB-LDN/Junaid/temp_files/lastfailedjob
237308646
If i run the following... (5 Replies)
Discussion started by: Junes
5 Replies
10. UNIX for Dummies Questions & Answers
Hello All,
Yesterday, all day, I was using x11vnc and vncviewer to connect to a server. But today for some reason it is not working. I don't
remember changing any settings or anything like that, but because it stopped working correctly I guess something has...?
I'm issuing the exact same... (0 Replies)
Discussion started by: mrm5102
0 Replies
SEQ(1) User Commands SEQ(1)
NAME
seq - print a sequence of numbers
SYNOPSIS
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
DESCRIPTION
Print numbers from FIRST to LAST, in steps of INCREMENT.
Mandatory arguments to long options are mandatory for short options too.
-f, --format=FORMAT
use printf style floating-point FORMAT
-s, --separator=STRING
use STRING to separate numbers (default:
)
-w, --equal-width
equalize width by padding with leading zeroes
--help display this help and exit
--version
output version information and exit
If FIRST or INCREMENT is omitted, it defaults to 1. That is, an omitted INCREMENT defaults to 1 even when LAST is smaller than FIRST. The
sequence of numbers ends when the sum of the current number and INCREMENT would become greater than LAST. FIRST, INCREMENT, and LAST are
interpreted as floating point values. INCREMENT is usually positive if FIRST is smaller than LAST, and INCREMENT is usually negative if
FIRST is greater than LAST. FORMAT must be suitable for printing one argument of type 'double'; it defaults to %.PRECf if FIRST, INCRE-
MENT, and LAST are all fixed point decimal numbers with maximum precision PREC, and to %g otherwise.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report seq translation bugs to <http://translationproject.org/team/>
AUTHOR
Written by Ulrich Drepper.
COPYRIGHT
Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
The full documentation for seq is maintained as a Texinfo manual. If the info and seq programs are properly installed at your site, the
command
info coreutils 'seq invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 SEQ(1)