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
LEARN ABOUT HPUX
statvfsdev64
fgetpos64(3S) fgetpos64(3S)
NAME
fgetpos64(), fopen64(), freopen64(), fseeko64(), fsetpos64(), fstatvfsdev64(), ftello64(), ftw64(), nftw64(), statvfsdev64(), tmpfile64() -
non-POSIX standard API interfaces to support large files.
SYNOPSIS
DESCRIPTION
New API's to support large files. These API interfaces are not a part of the POSIX standard and may be removed in the future.
The function is identical to except that returns the position in a instead of a All other functional behaviors, returns,
and errors are identical.
The function is identical to in 64-bit compile environment. The function returns a pointer to a FILE which can be used to
grow the file past 2 GB if desired. All other functional behaviors, returns, and errors are identical to
The function is identical to in 64-bit compile environment. The function returns a pointer to a FILE which can be used to
grow the file past 2 GB if desired. All other functional behaviors, returns, and errors are identical to
The function is identical to except that accepts an for the size parameter instead of All other functional behaviors,
returns, and errors are identical.
The function is identical to except that accepts an for the pos parameter instead of All other functional behaviors,
returns, and errors are identical.
The function is identical to except that accepts a for the second parameter instead of All other functional behaviors,
returns, and errors are identical.
The function is identical to except that returns the file position in an instead of an All other functional behaviors,
returns, and errors are identical.
The function is identical to except that it that it utilizes a as the second parameter to the function whose pointer is
passed to All other functional behaviors, returns, and errors are identical.
The function is identical to except that it that it utilizes a as the second parameter to the function whose pointer is
passed to All other functional behaviors, returns, and errors are identical.
The function is identical to except that accepts a for the second parameter instead of All other functional behaviors,
returns, and errors are identical.
The function is identical to in the 64-bit compile environment. Both interfaces create a temporary file that is capable
of growing beyond 2GB's if desired. All other functional behaviors, returns, and errors are identical.
SEE ALSO
thread_safety(5).
fgetpos64(3S)