Search
Thursday, 22nd of August 2019, 10:04:12 UTC
10:42:31
DrDuck
can data flow, like what exists in cells package, be as expressive as HM?
10:45:04
edgar-rft
DrDuck: can you please explain what you are talking about?
10:46:27
edgar-rft
HM is Hindustan Motors? -> http://hindmotor.com/
10:47:26
LdBeth
I took that as Hindley Miller
10:50:06
edgar-rft
could also be Hannah Montana
10:54:00
ck_
We may never know whether data flow can be as expressive as HM. It remains a mystery.
10:55:37
LdBeth
Data flow is undecidable
10:57:26
DrDuck
I saw Alan Kay alluring to some stuff Mccarthy wrote 50 years ago and essentually said it makes Mondads look like a cludge and waste of time
10:57:27
DrDuck
https://www.youtube.com/watch?v=fhOHn9TClXY&t=61m30s
10:57:34
DrDuck
in this talk with Joe armstrong
10:58:31
DrDuck
In his 'Situations, Actions, and Causal Laws' part of his 'Programs With Common Sense' paper
10:59:18
DrDuck
this is the paper: http://jmc.stanford.edu/articles/mcc59/mcc59.pdf
11:00:04
DrDuck
i think somehow i picked up that that was similar to data-flow techniques?
11:00:21
DrDuck
so i really have half a understanding of all of this. what did alan kay mean by that statement?
11:13:16
pjb
DrDuck: what is monads' purpose?
11:15:32
DrDuck
sorry i linked the wrong paper
11:16:13
pjb
So, what's the purpose of monads?
11:16:21
DrDuck
by book combines these two papers together so i didn't realize
11:16:22
DrDuck
https://apps.dtic.mil/dtic/tr/fulltext/u2/785031.pdf
11:17:00
pjb
It's to wrap state in purely functional programming languages.
11:17:01
DrDuck
it helps to do mutations
11:17:10
pjb
And what else wraps states in small units?
11:18:05
Lycurgus
generally, to effect referential transparency
11:18:27
pjb
So monads are just a bad and awkward implementation of objects in purely functional programming languages.
11:18:53
pjb
Which is what Alan Kay means above.
11:19:24
Lycurgus
and historically, for pretentious philosophizing
11:21:59
LdBeth
Monad is for generalize patterns
11:22:47
White_Flame
monads don't really implement objects, in the I/O mutation hiding sense. They externalize them from the language
11:22:48
LdBeth
Presuming mathematicians does organizing things better than programmers
11:23:34
LdBeth
White_Flame: myth: monad is about IO
11:23:51
White_Flame
I know, bu tfor the IO sense, it does not implement a mutable object
11:24:12
White_Flame
it merely is an interface to something external, where the interface itself is immutable
11:24:22
LdBeth
Yeah, compiler does the hack under it
11:24:47
LdBeth
But it not the only thing monads does
11:25:26
White_Flame
and of course, that was the main thrust of why monads were added to haskell, and then their other uses were promoted as well
11:25:53
LdBeth
Yale Haskell used to use CPS for IO
11:26:40
LdBeth
Another lazy functional language (Clean) promotes uniqueness type
11:29:27
DrDuck
so is there anything in common lisp that's as expressive/powerful as haskell typeclasses?
11:30:38
DrDuck
but we don't have type inference
11:30:47
LdBeth
Typeclass is no more than a sophisticated ad hoc overloading => make ad hoc polymorphism less ad hoc
11:31:33
LdBeth
Dependent type inference is not decidable
11:31:51
LdBeth
So I don’t think HM inference is anything good
11:32:22
LdBeth
In Haskell people still promote write out type signatures
11:33:27
LdBeth
By the way, we have type inference as ALGOL/C/Pascal
11:34:09
LdBeth
Compiler infers that 123 is a integer and "123" is a string
12:00:03
pjb
LdBeth: it's not the compiler that infers that, it's the reader.
12:00:29
pjb
LdBeth: and note that 123 can be a symbol too.
12:00:57
pjb
(let ((*read-base* 3.)) (type-of (read-from-string "123"))) #| --> symbol |#
12:00:57
no-defun-allowed
then it'd be |123|
12:00:58
LdBeth
pjb: a quoted number is ... a number
12:01:14
pjb
LdBeth: yes, but 123 can be read as a symbol.
12:01:29
pjb
123 is not necessarily the syntax of an integer.
12:02:40
no-defun-allowed
well pjb changed read-base which i didn't expect
12:03:32
no-defun-allowed
but in any case, you could have a (not CL obviously) evaluator that treated numbers as non-self-evaluating, and then the type of the value of 123 is not necessasrily a number
12:04:54
no-defun-allowed
my two cents are: please don't put static typing on Lisp
12:06:01
LdBeth
Although with proper analysis things can be made static without affecting semantics
12:12:00
pjb
LdBeth: not necessarily: (let* ((*read-base* 3.) (*print-base* *read-base*)) (prin1-to-string (read-from-string "123"))) #| --> "123" |#
14:54:28
Xach
beach: might the eclector errors here be caused by recent updates to eclector? http://report.quicklisp.org/2019-08-22/failure-report/sel.html#software-evolution-library_run-dump-store
14:59:51
beach
Xach: I am not keeping track of Eclector. It is scymtym's baby now.
15:24:42
scymtym
Xach: yes, eclector now exports READ{,-PRESERVING-WHITESPACE,-FROM-STRING} from its packages
15:29:20
Xach
scymtym: thanks, i'll alert the grammatech folks.
15:30:01
scymtym
Xach: great. maybe recommend that they don't :USE eclector packages to avoid this kind of thing in the future
18:22:47
bexx
it's here any maintainer of the next browser?
18:23:25
jgkamat
bexx: yes, jmercouis is the maintainer
18:24:11
jgkamat
yes, he only comes online sporadically
18:24:35
bexx
I'm trying to build an apk for alpine linux
18:24:50
bexx
and have some problems with it
18:31:52
pjb
bexx: better asked in #nEXT-Browser
19:14:58
Xach
scymtym: looks like it is fixed now!
19:23:08
scymtym
Xach: that's great, but i wonder why there wouldn't be the same problem for READ-FROM-STRING
19:43:57
mikeds
i'm writing a parser for a sexp-based format and i'm using CL read, but that doesn't give me the location in the file of every read form
19:44:22
mikeds
is there something in CL standard that could help me or do I need to write it from scratch
19:45:40
mikeds
it seems strange that there wouldn't be something like read that returns (values object location)
19:47:36
Xach
mikeds: there is nothing standard to do that. sbcl has a form-tracking stream of some sort but i'm not sure how it works or if it's useful for inspiration or direct use.
19:48:05
_death
it's likely that you should not use READ for that, anyway
19:50:05
_death
if you're writing your own parser, perhaps read-char
19:50:32
mikeds
i don't want to reimplement READ
19:51:08
mikeds
my parser works on top of CL objects, that CL READ reads
19:51:12
Bike
how would you handle nested structures? i mean, if you READ "(a b c (d e f) g h)" you'd get a location for the outer list but not the inner.
19:51:26
Bike
the eclector library is set up to do this kind of thing, but not with this interface
19:52:02
mikeds
Bike: this is what i'd want, the location of the object that READ returns
19:52:16
Bike
Well yes, but I mean the inner objects don't have location information.
19:52:43
mikeds
which is fine for my case
19:53:03
mikeds
i'm only interested in the location of top-level forms
19:53:41
Bike
yeah, if that's all you want that seems fine.
19:53:48
Bike
just take the file-position before you call read, and that's the position.
19:54:36
mikeds
not necessarily, comments and whitespace can mess it up
19:54:45
_death
anyway, READ is for arbitrary Common Lisp forms.. so unless you mean that, for "sexp-based format" you should write your own READ
19:55:30
mikeds
_death: i am reading Common Lisp forms
19:55:59
mikeds
plus piggybacking on the Lisp reader is very convenient
19:56:18
mikeds
i'd imagine writing a reader would be a last resort thing
19:56:59
mikeds
Bike: thanks, I will look into eclector
20:31:31
Lord_of_Life_
** NICK Lord_of_Life
21:46:56
sahara3
Oladon_work how are you??
21:51:07
Oladon_work
Doin' purty alright. You?
21:55:16
sahara3
Oladon_work where are you from??
21:57:05
sahara3
someone speaks spanish??
22:01:51
Oladon_work
Sí, pero no hablo sobre Lisp en español con frequéncia
22:02:47
sahara3
Oladon_work: ok entiendo :)
22:03:29
Oladon_work
Necesitas ayuda con Lisp?
22:03:42
sahara3
Oladon_work: no gracias
Thursday, 22nd of August 2019, 22:04:12 UTC