Gamasutra - In-depth: Functional programming in C++
Probably everyone reading this has heard "functional programming" put forth as something that is supposed to bring benefits to software development, or even heard it touted as a silver bullet. However, a trip to Wikipedia for some more information can be initially off-putting, with early references to lambda calculus and formal systems. It isn't immediately clear what that has to do with writing better software.

My pragmatic summary: A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in. In a multithreaded environment, the lack of understanding and the resulting problems are greatly amplified, almost to the point of panic if you are paying attention. Programming in a functional style makes the state presented to your code explicit, which makes it much easier to reason about, and, in a completely pure system, makes thread race conditions impossible.
6 days ago
« earlier      
2010 3d actuator actuators adc ajax amp amplifier arduino art ascii asterisk atmega attiny audio avr backup bash berlin bib bike bittorrent blenano blog bluetooth bm bob book books btle businesscard c ca cable calculator car cave cg clock cnc code collaboration color conductive connectors cook cooking css cv da dance dart339 db debian design diy django dnb dns dockstar doku driver eagle electronics embedded ems erm fabric filetype:pdf filter final flash fm fonts food fritzbox fun fusion gallery games gentoo git google gtd hack haptic haptics hardware hexayurt hiking howto html html5 human_powered i2c iceland images immigration imu insole insoles inspiration ir jabber java js kalman kde keyboard kinect la lab lasercut latex learning led linux lipo logic_analyzer lra mail make manufacturing map maps marg markdown math matplotlib matrix mcgill media:document media:image micromag3 ml montreal music muzaq n900 network neuro neuroplasticity news nixie nrf51 openni opera osc oscilloscope osx packliste parts pcb pdf performance pgmka phd philly photo photography photos piezo plot poster power presentation presentations pressure productivity programmer programming pwm python r raspi rbg recipes reference repair reqs rss ruby sc science search security sensor sensors sensory_substitution serial share shell shop slackline sleep slides smalarm smartlet software solderinskaters spi ssh statistics stereo storage studio synthesis tactile teensy terminal text thinkpad time tm tobuy toloan tools toread toshop towatch transmitter travel tutorial tw ubuntu uni unix usb vcs video vim vis visualization voip vpn w2b watchman wearables weather web webdesign wiki windows wire wireless wood wordpress work writing wrt x100s x240 yoga

Copy this bookmark: