Haudegen has quit [Remote host closed the connection]
AnAverageHuman has quit [Ping timeout: 256 seconds]
mfp has quit [Ping timeout: 258 seconds]
silver has quit [Read error: Connection reset by peer]
al-damiri has quit [Quit: Connection closed for inactivity]
zmt01 has quit [Quit: Leaving]
zmt00 has joined #ocaml
AnAverageHuman has joined #ocaml
Birdface has joined #ocaml
keep_learning_M has quit [Quit: Leaving]
keep_learning_M has joined #ocaml
keep_learning_M has quit [Client Quit]
keep_learning_M has joined #ocaml
gravicappa has joined #ocaml
Facebird has joined #ocaml
Birdface has quit [Ping timeout: 276 seconds]
jao has quit [Ping timeout: 246 seconds]
Facebird is now known as Birdface
ftlight_nc has quit [Remote host closed the connection]
_whitelogger has joined #ocaml
AnAverageHuman has quit [Ping timeout: 256 seconds]
<quarters>
is there such a thing as a pure functional language?
<octachron>
quarters, haskell tends to fit this category
<vsiles>
quarters: do you want a language that can be used in a pure way or really a language that is only pure and nothing else ?
<quarters>
I suppose I'm wondering if such a thing as a pure functional language has any value and at what point the line is drawn where the introduction of impure function is accepted
kakadu has joined #ocaml
jmiven has quit [Quit: co'o]
jmiven has joined #ocaml
<flux[m]>
quarters: the line is simply "pure functional code gives instructions to imperative runtime"
dhil has joined #ocaml
_whitelogger has joined #ocaml
ggole has joined #ocaml
oni-on-ion has joined #ocaml
ninetyone has joined #ocaml
Guest71124 has joined #ocaml
Birdface has quit [Ping timeout: 276 seconds]
mfp has joined #ocaml
zolk3ri has joined #ocaml
Shepi has joined #ocaml
Shepi has quit [Client Quit]
FreeBirdLjj has joined #ocaml
gareppa has joined #ocaml
dimitarvp has joined #ocaml
dmiles has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
dimitarvp has quit [Quit: Bye]
gareppa has quit [Quit: Leaving]
dmiles has joined #ocaml
Guest71124 has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
_whitelogger has joined #ocaml
traviss has joined #ocaml
silver has joined #ocaml
louisg has quit [Ping timeout: 245 seconds]
dhil has quit [Ping timeout: 250 seconds]
Haudegen has joined #ocaml
jao has joined #ocaml
<CcxWrk>
quarters: Yes, many of the functional languages that aren't in the "general purpose" category are pure. Especially for modelling or algorithm description.
<Drup>
octachron: haskell is not pure :3
dhil has joined #ocaml
<octachron>
unsafePerformIO?
<CcxWrk>
There are some uses for safe embedding of calculation, but you usually want to be more restrictive with that. Either with constraining resources or by using more limited language to enforce non-totality/completion. (Eg. Datalog [which is logic rather than function based, but you get the idea])
<CcxWrk>
For a lot of languages "safe" subsets can be found (see Emily for OCaml), for some not so much.
<Drup>
octachron: not only that, as a language, it's not pure, otherwise programs wouldn't really do anything. It's referentially transparent, which is very different
<Drup>
(leaving the escape hatches aside)
<flux[m]>
Drup: no, I think monads are a permitted loophole
<Drup>
It's not monads, it's IO
<Drup>
IO happens to be a monad, but monads to dot enable side effects, IO does
<octachron>
Well, yes, as some point you need to entangle the state of the world with the state of the program
<flux[m]>
I mean, this is a arguably pure ocaml program: `let program = "rm -rf /tmp"` - but then you add the impure part to is: `let _ = system program`
weird_error has quit [Quit: weird_error]
<bartholin>
The typing system of Haskell elegantly separates the pure part from the (usually necessary) impure part, thanks to the opaque IO monad.
<Drup>
(also, the notion of "purity" is conveniently modified each times someones want to say something about it, to suits the discourse)
<bartholin>
purity == deterministic and no side-effect
<CcxWrk>
s/wouldn't really do anything/would compute one result for given parameters/
<Drup>
bartholin: is non termination an effect ?
<Drup>
(many theory people consider that yes)
* bartholin
screams in fear and runs away
<Drup>
my point exactly
tane has joined #ocaml
<Drup>
Talking about purity is posturing
<bartholin>
But then pure lambda-calculus is not even a pure language.
<Drup>
you should talk about referential transparency, which is the property that people want
<Drup>
bartholin: well, STLC is.
<Drup>
(and Galina too)
<bartholin>
But referential transparency allows the random() function.
<Drup>
referential transparency means identical input gives you indentical output. If you give the seed explicitely, then yes, sure. Otherwise no.
traviss has quit [Quit: Page closed]
__y has quit [Quit: Brèche du réacteur.]
jao has quit [Ping timeout: 250 seconds]
dhil has quit [Ping timeout: 246 seconds]
<bartholin>
how do you do referential transparency if some expression loops forever without returning any value?
<ggole>
"gives you indentical output" becomes "gives you identical output or doesn't terminate"
FreeBirdLjj has joined #ocaml
pierpal has quit [Quit: Poof]
pierpal has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
dhil has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 255 seconds]
leah2 has quit [Read error: Connection reset by peer]
leah2 has joined #ocaml
johnelse has quit [Quit: leaving]
ale64bit has joined #ocaml
ale64bit has quit [Ping timeout: 244 seconds]
zolk3ri has quit [Remote host closed the connection]
zolk3ri has joined #ocaml
spew has joined #ocaml
weird_error has joined #ocaml
ale64bit has joined #ocaml
ninetyone has quit [Quit: Leaving]
FreeBirdLjj has joined #ocaml
weird_error has quit [Quit: weird_error]
Birdface has joined #ocaml
AtumT has joined #ocaml
mildtaste has quit [Remote host closed the connection]
ale64bit has quit [Ping timeout: 250 seconds]
nikivi has quit [Quit: ZNC is awesome]
nikivi has joined #ocaml
ygrek has joined #ocaml
AnAverageHuman has joined #ocaml
stux|RC has quit [Quit: Aloha!]
stux|RC has joined #ocaml
mgsk__ is now known as mgsk
andreas303 has quit [Ping timeout: 256 seconds]
andreas303 has joined #ocaml
klntsky has quit [Remote host closed the connection]
klntsky has joined #ocaml
AtumT_ has joined #ocaml
AtumT has quit [Ping timeout: 246 seconds]
dhil has quit [Ping timeout: 245 seconds]
dhil has joined #ocaml
AtumT has joined #ocaml
AtumT_ has quit [Ping timeout: 245 seconds]
Haudegen has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
AnAverageHuman has quit [Ping timeout: 256 seconds]
ziyourenxiang has quit [Ping timeout: 246 seconds]