00:03
__DL__ has quit ["Bye Bye"]
00:21
mauke has quit [Remote closed the connection]
00:21
mauke has joined #ocaml
00:28
Raziel has quit ["Yo soy goma. Tú eres cola."]
00:44
Submarine has quit ["Leaving"]
00:58
quamaretto has quit [Remote closed the connection]
01:06
mauke has quit [Remote closed the connection]
01:06
mauke has joined #ocaml
02:03
mauke has quit [Remote closed the connection]
02:03
mauke has joined #ocaml
02:26
pango_ has joined #ocaml
02:43
pango has quit [Read error: 110 (Connection timed out)]
02:49
batdog|gone is now known as batdog
03:02
mauke has quit [Remote closed the connection]
03:02
mauke has joined #ocaml
03:03
khaladan has quit [Read error: 104 (Connection reset by peer)]
04:07
mauke has quit [Remote closed the connection]
04:07
mauke has joined #ocaml
04:35
batdog has left #ocaml []
04:37
batdog has joined #ocaml
04:58
batdog is now known as batdog|gone
04:58
kryptt has joined #ocaml
05:00
<
kryptt >
hi all, i'm interested in an opinion regarding ai, functional languages and embedded systems
05:00
<
Smerdyakov >
You won't know if anyone has one until you ask for it.
05:01
<
dylan >
kryptt: I think they taste like turkey and with half the fat of imperative languages.
05:01
batdog|gone is now known as batdog
05:01
<
kryptt >
dylan: lool
05:01
<
kryptt >
where do they meat?
05:02
<
dylan >
kryptt: O'Leary's irish pub?
05:03
<
dylan >
kryptt: seriously, I'm not sure I understand the question.
05:04
<
dylan >
functional languages have a pretty strong basis in AI, Lisp being the old de-facto language for AI research.
05:04
<
kryptt >
dylan: yeah, but where have functional languages failed?
05:05
<
kryptt >
dylan: well i guess i'll probably very salnt towards my own opinion...
05:05
<
Smerdyakov >
kryptt, as far as I'm concerned, you have not yet asked us a concrete question.
05:06
<
Smerdyakov >
kryptt, would you mind doing so?
05:06
<
kryptt >
i know... i didnt want to be baised towards my own opinion...
05:06
<
Smerdyakov >
kryptt, we can't help you if we don't know what you want, regardless of your opinion.
05:07
<
kryptt >
anyways.. the question is basically where can reactive systems and functional languages work together?
05:07
batdog is now known as batdog|gone
05:09
<
kryptt >
um, as in embedded systems...
05:09
<
kryptt >
as a way of thought in a functional language, you have a specific output corresponding to a specific input
05:09
<
kryptt >
in a reactive model, you have a specif state corresponding to a specific previous state and an event
05:09
<
dylan >
functions map very well to state machines.
05:10
<
dylan >
newstate = f(oldstate)
05:10
<
dylan >
newstate = f(oldstate, x)
05:10
<
dylan >
where x is an event. :)
05:11
<
kryptt >
well, all you have to do is prove turing completeness
05:11
<
kryptt >
and each model better suites their own paradigms
05:12
<
dylan >
the reactive model seems directly comparable to functions, to me.
05:12
<
kryptt >
in embedded sytems you frequently use statemachines to map functions (like in a communications protocol)
05:12
<
kryptt >
not necesarily
05:13
<
dylan >
I mean, it's not even cumbersome, it's quite common I believe.
05:15
<
dylan >
I guess I fail to understand the question. :(
05:17
<
kryptt >
i'll ask this one:
05:17
<
kryptt >
is there nothing new to learn from a reactive system?
05:17
<
dylan >
You'd have to show me a reactive system
05:19
<
kryptt >
an alarm is probably a good example:
05:19
<
kryptt >
the alarm is in two basic state:
05:19
<
kryptt >
armed or disarmed
05:20
mauke has quit [Remote closed the connection]
05:20
mauke has joined #ocaml
05:20
<
kryptt >
inside the armed state, the alarm can be simply armed, firing or fired before
05:21
<
kryptt >
inside the disarmed state it can be normal or disarmed with sensor aciv
05:22
<
kryptt >
so when a normal user sends the disarm event, the alarm will behave differently if it is disarmed, or armed normal, or armed fired
05:22
<
kryptt >
if it is armed fired it might warn that in the past something triggered it
05:25
<
kryptt >
i believe there has been some undermining of memory, of permanence of action. in regards to ai research
05:54
batdog|gone is now known as batdog
05:56
batdog is now known as batdog|gone
06:16
mauke has quit [Remote closed the connection]
06:16
mauke has joined #ocaml
06:54
Snark has quit ["Leaving"]
07:00
kryptt has quit [Read error: 110 (Connection timed out)]
07:33
rillig has quit [kornbluth.freenode.net irc.freenode.net]
07:33
ski has quit [kornbluth.freenode.net irc.freenode.net]
07:33
Bigb[a]ng has quit [kornbluth.freenode.net irc.freenode.net]
07:33
chimikal has quit [kornbluth.freenode.net irc.freenode.net]
07:33
batdog|gone has quit [kornbluth.freenode.net irc.freenode.net]
07:33
Oatmeat|cs has quit [kornbluth.freenode.net irc.freenode.net]
07:33
TaXules has quit [kornbluth.freenode.net irc.freenode.net]
07:33
alch` has quit [kornbluth.freenode.net irc.freenode.net]
07:33
shrimpx has quit [kornbluth.freenode.net irc.freenode.net]
07:33
dvekravy has quit [kornbluth.freenode.net irc.freenode.net]
07:33
CLxyz has quit [kornbluth.freenode.net irc.freenode.net]
07:33
batdog|gone has joined #ocaml
07:33
rillig has joined #ocaml
07:33
ski has joined #ocaml
07:33
Bigb[a]ng has joined #ocaml
07:33
alch` has joined #ocaml
07:33
chimikal has joined #ocaml
07:33
Oatmeat|cs has joined #ocaml
07:33
TaXules has joined #ocaml
07:33
shrimpx has joined #ocaml
07:33
CLxyz has joined #ocaml
07:33
dvekravy has joined #ocaml
07:52
Skal has joined #ocaml
07:56
MisterC has joined #ocaml
08:03
clog has joined #ocaml
08:11
Skal has quit [Read error: 110 (Connection timed out)]
08:15
_shawn has joined #ocaml
08:40
m3ga has joined #ocaml
08:42
mauke has quit [Remote closed the connection]
08:42
mauke has joined #ocaml
09:00
pango_ has quit [Remote closed the connection]
09:12
pango has joined #ocaml
09:32
khaladan has joined #ocaml
09:48
m3ga has quit ["disappearing into the sunset"]
09:58
_shawn has quit [Read error: 60 (Operation timed out)]
09:58
_shawn has joined #ocaml
10:17
Revision17 has quit [Read error: 110 (Connection timed out)]
10:17
rillig has quit [Read error: 104 (Connection reset by peer)]
10:21
rillig has joined #ocaml
10:25
mauke has quit [Remote closed the connection]
10:25
mauke has joined #ocaml
10:46
det has quit [Read error: 110 (Connection timed out)]
11:30
det has joined #ocaml
12:00
mauke has quit [Remote closed the connection]
12:00
mauke has joined #ocaml
12:01
Oatmeat|cs has quit [Read error: 104 (Connection reset by peer)]
12:01
Oatmeat|umn has joined #ocaml
13:11
mauke has quit [Remote closed the connection]
13:11
mauke has joined #ocaml
13:20
Oatmeat|umn has quit [Read error: 104 (Connection reset by peer)]
13:22
Oatmeat|umn has joined #ocaml
13:56
Oatmeat|umn has quit [Read error: 104 (Connection reset by peer)]
13:56
Oatmeat|umn has joined #ocaml
13:58
mauke has quit [Remote closed the connection]
13:58
mauke has joined #ocaml
14:15
yangsx has joined #ocaml
14:16
yangsx has quit ["离开"]
14:36
Snark has joined #ocaml
14:42
mauke has quit [Remote closed the connection]
14:42
mauke has joined #ocaml
14:44
demitar_ is now known as Demitar
14:47
Revision17 has joined #ocaml
14:50
Oatmeat|umn has quit [Read error: 110 (Connection timed out)]
14:50
Oatmeat|umn has joined #ocaml
14:51
Raziel has joined #ocaml
15:11
Kerjean has joined #ocaml
15:13
<
zmdkrbou >
c'est un chan anglophone ici :)
15:13
<
Kerjean >
oups scuse me
15:13
<
zmdkrbou >
no problem
15:14
<
Kerjean >
i shall speak in english thus
15:22
<
Amorphous >
hey. i'm trying to write a parser in ocamlyacc for the following: <group> ::= <groupheader> <entry>* <ini-file> ::= <group>+
15:23
<
Amorphous >
but i fail miserably. is that even possible?
15:24
<
zmdkrbou >
groupheader entrylist
15:24
<
zmdkrbou >
entrylist:
15:25
<
Kerjean >
what is the error you get ?
15:31
<
Amorphous >
exception Parsing.Parse_error and parse_error is syntax error
15:31
<
Amorphous >
one mom. i'll paste to pastebin.com
15:32
<
Kerjean >
have you check for missing semicolon or stuff like that ?
15:34
<
Amorphous >
flux__: is it not possible what i want with ocamlyacc?
15:35
<
zmdkrbou >
Amorphous: it's possible
15:35
<
Kerjean >
Amorphous have you check the documentation of ocamlyacc on the reference site ?
15:35
<
flux__ >
sure it is possible
15:35
<
zmdkrbou >
it's easy
15:35
<
flux__ >
menhir just provides some syntax for expressing certain things more concisely
15:35
<
flux__ >
(plus it is actually a more powerful parser generator)
15:36
<
flux__ >
disclaimer: I haven't used menhir, because I haven't had the need
15:36
<
flux__ >
(but I did browse through its documentation)
15:36
<
Amorphous >
i have groupheader groupheader and it fails on the second (empty group should be possible)
15:37
mauke has quit [Remote closed the connection]
15:37
mauke has joined #ocaml
15:37
<
Amorphous >
arg ok the version i pasted didn't allow it
15:37
<
Kerjean >
Amorphous try groupheader : group_empty | group_non_empty groupheader
15:40
* Amorphous
*sigs* CFGs are so easy in theory
15:41
<
flux__ >
I just used libcf's or maybe libmissinglib's configuration parser
15:41
<
Kerjean >
Amorphous your problem is very similar to the parsing of lists
15:44
<
Amorphous >
i don't get it
15:44
<
Amorphous >
| Group groupentrylist | Group
15:44
<
Amorphous >
(Group is the header)
15:45
<
Kerjean >
yes, does it compile ?
15:46
<
Amorphous >
yes. the parser goes into groupentry: and of course can't put in the next token Group
15:46
<
Amorphous >
tokens come in the following row Group Group Entry
15:47
<
Amorphous >
and it is at the second one
15:47
<
Amorphous >
but he should have returned with the first one because no Entry follows
15:48
<
Kerjean >
Amorphous just remove the first Group, and allow groupentrylist to return empty list !
15:48
<
Kerjean >
thus Group($1,$2) does the job, with $2 = empty list ;)
15:49
<
Amorphous >
doesn't work
15:51
<
Kerjean >
just put groupentry befor groupentrylist, to have an LL(1) aprser
15:54
<
Amorphous >
the same problem
15:55
<
Kerjean >
Amorphous i just submit you on pastebin a sample of a parser file from the distribution.
15:56
<
Kerjean >
Amorphous source code of ocaml is always a good source of samples !
15:57
<
Amorphous >
what's case?
16:00
* Amorphous
thinks his brain just melted away
16:00
<
Kerjean >
Amorphous just pick a .mly file from the ocaml distribution and look for the keyword "list", you should understand how to parse lists possibly empty
16:02
<
Amorphous >
but i did just that (i think. but i obviously made an error)
16:05
<
Amorphous >
it seems the parser insists on going to "| groupentry groupentrylist {...}" instead of empty ( "| {...}" )
16:05
<
Amorphous >
and thus fails on the next token because it is not Entry
16:07
<
Kerjean >
i can't help you more. just look the documentation of ocamlyacc , i remember it was clearly explain in it
16:10
<
Amorphous >
oh it is clearly explained for cases where you have parens like "[Groupheader] ( ) [Groupheader] ( entry entry )" but i didn't find any example for something like "[Groupheader] [Groupheader] entry entry"
16:12
<
Kerjean >
Amorphous no idea to go further , sadly :(
16:12
<
Amorphous >
mh :( thx anyway
16:13
<
Amorphous >
anyone?
16:14
<
zmdkrbou >
< Amorphous> it seems the parser insists on going to "| groupentry groupentrylist {...}" instead of empty ( "| {...}" )
16:14
<
zmdkrbou >
^^^ try to place the empty part
*after* the non-empty one
16:15
<
Kerjean >
zmdkrbou that is what i said, it seems it did'nt help him
16:16
<
Amorphous >
zmdkrbou: both ways it's the same problem
16:17
<
Amorphous >
and as it is supposed to the two .output files only have one state number exchanged
16:22
mauke has quit [Remote closed the connection]
16:22
mauke has joined #ocaml
16:28
Raziel has quit ["Yo soy goma. Tú eres cola."]
16:38
Kerjean has left #ocaml []
16:39
<
Amorphous >
lol if i reverse the token stream and do groupentrylist Group instead of Group groupentrylist
16:39
<
Amorphous >
it works
16:51
mauke has quit [Remote closed the connection]
16:51
mauke has joined #ocaml
16:57
nooga has joined #ocaml
17:08
nooga has left #ocaml []
17:27
mauke has quit [Remote closed the connection]
17:27
mauke has joined #ocaml
17:28
bzzbzz has joined #ocaml
18:00
MisterC has quit [Remote closed the connection]
18:11
mauke has quit [Remote closed the connection]
18:11
mauke has joined #ocaml
18:53
pango has quit ["Leaving"]
18:57
mauke has quit [Remote closed the connection]
18:57
mauke has joined #ocaml
18:58
ski has quit [Read error: 110 (Connection timed out)]
18:58
ski has joined #ocaml
19:13
pango has joined #ocaml
19:44
mauke has quit [Remote closed the connection]
19:44
mauke has joined #ocaml
19:46
slipstream has quit [Read error: 104 (Connection reset by peer)]
19:52
slipstream has joined #ocaml
19:53
smimou has joined #ocaml
20:09
zigong has joined #ocaml
20:19
mauke has quit [Remote closed the connection]
20:19
mauke has joined #ocaml
20:23
Snark has quit ["Leaving"]
20:33
Skal has joined #ocaml
20:33
kral has joined #ocaml
20:52
Raziel has joined #ocaml
20:59
mauke has quit [Remote closed the connection]
20:59
mauke has joined #ocaml
21:17
mikeX has joined #ocaml
21:17
<
mikeX >
is there a crc32 lib I can use with ocaml?
21:17
<
mikeX >
something like the digest module
21:32
mauke has quit [Remote closed the connection]
21:32
mauke has joined #ocaml
21:42
<
mikeX >
hmm, I see now the algorithm should be fairly simple, so I guess there is not need for one
22:01
mauke has quit [Remote closed the connection]
22:01
mauke has joined #ocaml
22:06
Skal has quit ["Client exiting"]
22:25
mak1 has joined #ocaml
22:31
mak1 has left #ocaml []
22:34
mauke has quit [Remote closed the connection]
22:34
mauke has joined #ocaml
22:41
zigong has quit ["using sirc version 2.211+KSIRC/1.3.12"]
22:45
kral has quit [""In girum imus nocte et consumimur igni.""]
22:57
SmerdyOffice has joined #ocaml
22:58
SmerdyOffice has quit [Client Quit]
23:05
smimou has quit ["bli"]
23:07
Raziel has quit ["Yo soy goma. Tú eres cola."]
23:10
Raziel has joined #ocaml
23:15
Raziel has quit ["Yo soy goma. Tú eres cola."]
23:16
mauke has quit [Remote closed the connection]
23:16
mauke has joined #ocaml
23:16
Raziel has joined #ocaml
23:18
Raziel has quit [Client Quit]
23:34
mikeX has quit ["leaving"]