* Re: Redefinition doesn't work [not found] <200010300739.IAA13016@pauillac.inria.fr> @ 2000-10-30 23:38 ` Jaeyoun Chung 2000-10-31 11:06 ` Pierre Weis 0 siblings, 1 reply; 21+ messages in thread From: Jaeyoun Chung @ 2000-10-30 23:38 UTC (permalink / raw) To: Pierre Weis; +Cc: caml-list [hm. this is quite strange anyway, here's the message that i've posted to the caml list.] * "Mattias Waldau" <mattias.waldau@abc.se> at 2000-10-28 09:32+0200 | # let f1 () = 10;; | val f1 : unit -> int = <fun> | # let f2 () = (f1 ()) * 10;; | val f2 : unit -> int = <fun> | # f2 ();; | - : int = 100 | # let f1 () = 20;; | val f1 : unit -> int = <fun> | # f2 ();; | - : int = 100 | # * Pierre Weis <Pierre.Weis@inria.fr> at 2000-10-28 18:37+0200 | This is not a misfeature, but an extremely desirable property: a sound | theoretical fundation for the binding rule of identifiers in the | language. This rule means that every identifier in a program is bound | before the point of use. This is simple to explain and clear to | understand. Furthermore it allows the static verification of type | correctness. this is quite true but the above feature for the toplevel is quite useful during the development phase. if each time we should redefine everything dependent on one function, toplevel isn't quite that useful -- to find out the dependencies or just reload everything dependent on the file containing the function is what should have be done automatically. what about having an option or directive so that user can control the behavior? when user redefines some function, isn't it exactly the user's intention to redefine all the bindings already defined not only those following that redefinition? -- Jaeyoun Chung mailto:jay@kldp.org [see http://emacs.kldp.org for emacs-KR homepage.] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-30 23:38 ` Redefinition doesn't work Jaeyoun Chung @ 2000-10-31 11:06 ` Pierre Weis 2000-10-31 11:52 ` Sven LUTHER 2000-10-31 14:16 ` Redefinition doesn't work Frank Atanassow 0 siblings, 2 replies; 21+ messages in thread From: Pierre Weis @ 2000-10-31 11:06 UTC (permalink / raw) To: jay; +Cc: caml-list Jaeyoun Chung (mailto:jay@kldp.org) wrote: > this is quite true but the above feature for the toplevel is quite useful > during the development phase. if each time we should redefine everything > dependent on one function, toplevel isn't quite that useful -- to find out > the dependencies or just reload everything dependent on the file > containing the function is what should have be done automatically. what > about having an option or directive so that user can control the behavior? We already have one: #use "filename.ml";; For instance, you can use a loadall.ml file that contains the list of #use directives that load the files that made your program. > when user redefines some function, isn't it exactly the user's intention > to redefine all the bindings already defined not only those following that > redefinition? No, I guess it is not the intention of the user, since he does not know the set of bindings that uses the function he is redefining. If you want to test, you can use the Ocaml feature that effectively redefines functions the way you suggest they should be, namely the #trace directive. For instance: # #trace List.iter;; List.iter is now traced. # 1;; Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 11:06 ` Pierre Weis @ 2000-10-31 11:52 ` Sven LUTHER 2000-10-31 16:47 ` Pierre Weis 2000-10-31 14:16 ` Redefinition doesn't work Frank Atanassow 1 sibling, 1 reply; 21+ messages in thread From: Sven LUTHER @ 2000-10-31 11:52 UTC (permalink / raw) To: Pierre Weis; +Cc: jay, caml-list On Tue, Oct 31, 2000 at 12:06:13PM +0100, Pierre Weis wrote: > Jaeyoun Chung (mailto:jay@kldp.org) wrote: > > > this is quite true but the above feature for the toplevel is quite useful > > during the development phase. if each time we should redefine everything > > dependent on one function, toplevel isn't quite that useful -- to find out > > the dependencies or just reload everything dependent on the file > > containing the function is what should have be done automatically. what > > about having an option or directive so that user can control the behavior? > > We already have one: #use "filename.ml";; > > For instance, you can use a loadall.ml file that contains the list of > #use directives that load the files that made your program. > > > when user redefines some function, isn't it exactly the user's intention > > to redefine all the bindings already defined not only those following that > > redefinition? > > No, I guess it is not the intention of the user, since he does not > know the set of bindings that uses the function he is redefining. Isn't it possible to have a rebind or something such keyboard, that would test that the type of the newly binded value is the same as the old value, or maybe even something larger than that ? Friendly, Sven LUTHER ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 11:52 ` Sven LUTHER @ 2000-10-31 16:47 ` Pierre Weis 2000-10-31 18:55 ` Stefan Monnier 0 siblings, 1 reply; 21+ messages in thread From: Pierre Weis @ 2000-10-31 16:47 UTC (permalink / raw) To: Sven LUTHER; +Cc: caml-list > Isn't it possible to have a rebind or something such keyboard, that would test > that the type of the newly binded value is the same as the old value, or maybe > even something larger than that ? > > Friendly, > > Sven LUTHER It is not only a question of type. As I mentioned in my previous message, if you allow the user to ``rebind'' some basic functions, such as map or iter, the behaviour of the compiler can be unpredictable. Friendly, Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 16:47 ` Pierre Weis @ 2000-10-31 18:55 ` Stefan Monnier 2000-11-02 15:42 ` Pierre Weis 0 siblings, 1 reply; 21+ messages in thread From: Stefan Monnier @ 2000-10-31 18:55 UTC (permalink / raw) To: caml-list >>>>> "Pierre" == Pierre Weis <Pierre.Weis@inria.fr> writes: > It is not only a question of type. As I mentioned in my previous > message, if you allow the user to ``rebind'' some basic functions, > such as map or iter, the behaviour of the compiler can be > unpredictable. It never seems to bother Lisp users. Stefan ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 18:55 ` Stefan Monnier @ 2000-11-02 15:42 ` Pierre Weis 2000-11-03 3:10 ` Stefan Monnier 2000-11-03 8:44 ` Good programming languages (Was: Redefinition doesn't work) Mattias Waldau 0 siblings, 2 replies; 21+ messages in thread From: Pierre Weis @ 2000-11-02 15:42 UTC (permalink / raw) To: Stefan Monnier; +Cc: caml-list > >>>>> "Pierre" == Pierre Weis <Pierre.Weis@inria.fr> writes: > > It is not only a question of type. As I mentioned in my previous > > message, if you allow the user to ``rebind'' some basic functions, > > such as map or iter, the behaviour of the compiler can be > > unpredictable. > > It never seems to bother Lisp users. > > > Stefan Absolutely right. In the same vein we have: the absence of static type-checking ``never seems to bother Lisp users'', the absence of GC ``never seems to bother C users'', the absence of dynamically allocated arrays ``never seems to bother Pascal users'', the absence of pattern matching ``never seems to bother Pascal users''... So what ? Users of these languages have very often to fight against the absence of these features. In Caml, we chose to provide them to the user in a simple and rigorous way. Conversely, we try to avoid the addition of features that can confuse the users in some situations (and in my mind the rebinding of identifiers belongs to this category). To be precise, I implemented this feature long time ago in Caml: it was named the #relet directive of the toplevel. It had the type-checking constraints I mentioned. So it was safe. But it was confusing, since people quickly started to imagine that it meant : everything that mentioned the old function should now behave as if the old function were the new one. So they asked this relet feature to be applied recursively everywhere in their programs, including partially applied functions or even totally applied functions such as constants expressed as a call to a rebound function (something like: I relet fib, but my x, defined as let x = fib 20, has not changed, it still uses the old value of fib!). We ended up by saying: if you want to obtain this effect, you just have to reload the entire program ... So better start by saying ``if you want to obtain this effect, you just have to reload the entire program''! Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-11-02 15:42 ` Pierre Weis @ 2000-11-03 3:10 ` Stefan Monnier 2000-11-03 8:44 ` Good programming languages (Was: Redefinition doesn't work) Mattias Waldau 1 sibling, 0 replies; 21+ messages in thread From: Stefan Monnier @ 2000-11-03 3:10 UTC (permalink / raw) To: caml-list >>>>> "Pierre" == Pierre Weis <Pierre.Weis@inria.fr> writes: > Absolutely right. In the same vein we have: the absence of static > type-checking ``never seems to bother Lisp users'', the absence of GC > ``never seems to bother C users'', the absence of dynamically > allocated arrays ``never seems to bother Pascal users'', the absence > of pattern matching ``never seems to bother Pascal users''... .... ...., the absence of rebinding in the interactive loop ``never seems to bother OCaml users''.... Stefan ;-) ^ permalink raw reply [flat|nested] 21+ messages in thread
* Good programming languages (Was: Redefinition doesn't work) 2000-11-02 15:42 ` Pierre Weis 2000-11-03 3:10 ` Stefan Monnier @ 2000-11-03 8:44 ` Mattias Waldau 2000-11-03 15:27 ` bcpierce 2000-11-06 6:17 ` Francisco Reyes 1 sibling, 2 replies; 21+ messages in thread From: Mattias Waldau @ 2000-11-03 8:44 UTC (permalink / raw) To: caml-list >> So better start by saying ``if you want to obtain this effect, you >> just have to reload the entire program''! >> Pierre Weis Sorry, I don't buy your arguments. The most important aspects of a programming language for me is: 1. typed (to find typo-like bugs, or when changing the program) 2. interactive environment (to be able to test hard part of the program without have to write elaborate function just for testing) 3. easy to use and understand libraries. 4. good syntax, which makes it easy to write the correct code 5. fast 6. portable, works on windows and linux 7. good support or good open source team 8. cheap On a scale from 1 to 5, where 5 is the best, Ocaml would get 5 for typed, 3 for interactive environment (better than C, Java, SML, but much worse than Lisp, Prolog, Scheme, examples of problem: #relet, not very good emacs-modes, no object-browser), 2 for easy to use libraries (it is so hard to find the right function, I have to search thru the PDF-file all the time), 2 for good syntax (it is very easy to spend a lot of time trying to get the program to compile, for example I called a attribute in a record 'value', and that works sometimes I have noticed :-), 5 for fast, 5 for portable (when ocamldebug works on windows) 4 for good support (I tried to understand the source code of ocaml, but my French is to bad.) 5 for cheap Very good scores for ocaml, but there are places for improvements. /mattias ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-03 8:44 ` Good programming languages (Was: Redefinition doesn't work) Mattias Waldau @ 2000-11-03 15:27 ` bcpierce 2000-11-06 0:17 ` Jacques Garrigue 2000-11-08 18:42 ` Markus Mottl 2000-11-06 6:17 ` Francisco Reyes 1 sibling, 2 replies; 21+ messages in thread From: bcpierce @ 2000-11-03 15:27 UTC (permalink / raw) To: Mattias Waldau; +Cc: caml-list > 2 for easy to use libraries (it is so hard to find the right function, I > have to search thru the PDF-file all the time), I find that Emacs is an excellent tool for searching for functions in the OCaml library. The developers have helpfully provided a pure-ascii version of the documentation, and a couple of incremental searches usually gets me to what I want in a few second. Occasionally I even do searches based on types. For example, I can never remember the convention for naming conversion functions. Is it int_to_string or string_to_int or string_of_int or...? A simple search for "int -> string" settles the question in moments. :-) B ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-03 15:27 ` bcpierce @ 2000-11-06 0:17 ` Jacques Garrigue 2000-11-08 18:42 ` Markus Mottl 1 sibling, 0 replies; 21+ messages in thread From: Jacques Garrigue @ 2000-11-06 0:17 UTC (permalink / raw) To: mattias.waldau; +Cc: caml-list From: bcpierce@cis.upenn.edu > > 2 for easy to use libraries (it is so hard to find the right function, I > > have to search thru the PDF-file all the time), > > I find that Emacs is an excellent tool for searching for functions in the > OCaml library. The developers have helpfully provided a pure-ascii > version of the documentation, and a couple of incremental searches > usually gets me to what I want in a few second. > > Occasionally I even do searches based on types. For example, I can never > remember the convention for naming conversion functions. Is it > int_to_string or string_to_int or string_of_int or...? A simple search > for "int -> string" settles the question in moments. :-) Just a plug: ocamlbrowser is really good at all that. You can visit modules through navigation, read comments in the .mli's... You can even search by types, with a few built-in isomorphisms. Maybe for experienced users full text search is just enough, but beginners should at least give a try to it. And it works even if there is no documentation :-) as for labltk :-( Jacques ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-03 15:27 ` bcpierce 2000-11-06 0:17 ` Jacques Garrigue @ 2000-11-08 18:42 ` Markus Mottl 2000-11-09 16:20 ` Juan J. Quintela 1 sibling, 1 reply; 21+ messages in thread From: Markus Mottl @ 2000-11-08 18:42 UTC (permalink / raw) To: bcpierce; +Cc: Mattias Waldau, caml-list On Fri, 03 Nov 2000, bcpierce@cis.upenn.edu wrote: > I find that Emacs is an excellent tool for searching for functions in > the OCaml library. The developers have helpfully provided a pure-ascii > version of the documentation, and a couple of incremental searches > usually gets me to what I want in a few second. VIM-users might want to put the following function definition into their .bashrc-file: function ocdoc () { command vim -R $OCAMLLIBPATH/$1; } where $OCAMLLIBPATH is set to the location of the library directory. A simple e.g. "ocdoc list.mli" (or also "ocdoc list.ml") on the command line will display the nicely highlighted code in a shell window (starting up Emacs in a similar way is just too slow :-) Best regards, Markus Mottl -- Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-08 18:42 ` Markus Mottl @ 2000-11-09 16:20 ` Juan J. Quintela 2000-11-10 10:06 ` Markus Mottl 2000-11-10 19:06 ` Remi VANICAT 0 siblings, 2 replies; 21+ messages in thread From: Juan J. Quintela @ 2000-11-09 16:20 UTC (permalink / raw) To: Markus Mottl; +Cc: bcpierce, Mattias Waldau, caml-list >>>>> "markus" == Markus Mottl <mottl@miss.wu-wien.ac.at> writes: markus> On Fri, 03 Nov 2000, bcpierce@cis.upenn.edu wrote: >> I find that Emacs is an excellent tool for searching for functions in >> the OCaml library. The developers have helpfully provided a pure-ascii >> version of the documentation, and a couple of incremental searches >> usually gets me to what I want in a few second. markus> VIM-users might want to put the following function definition into their markus> .bashrc-file: markus> function ocdoc () { command vim -R $OCAMLLIBPATH/$1; } markus> where $OCAMLLIBPATH is set to the location of the library directory. A markus> simple e.g. "ocdoc list.mli" (or also "ocdoc list.ml") on the command markus> line will display the nicely highlighted code in a shell window (starting markus> up Emacs in a similar way is just too slow :-) Have you ever heard of emacsclient???? /me hides under the _holy_ war emacs/vi. Later, Juan. -- In theory, practice and theory are the same, but in practice they are different -- Larry McVoy ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-09 16:20 ` Juan J. Quintela @ 2000-11-10 10:06 ` Markus Mottl 2000-11-13 7:48 ` Stephan Houben 2000-11-10 19:06 ` Remi VANICAT 1 sibling, 1 reply; 21+ messages in thread From: Markus Mottl @ 2000-11-10 10:06 UTC (permalink / raw) To: Juan J. Quintela; +Cc: caml-list On Thu, 09 Nov 2000, Juan J. Quintela wrote: > Have you ever heard of emacsclient???? Yes - I had used emacs for over two years. That was a mistake... The emacs server needs too much memory ;) I generally hold it with this saying: "Emacs is a good operating system, but Unix has a nicer editor." Programming OCaml is even more fun with Vim! :-) Best regards, Markus Mottl -- Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-10 10:06 ` Markus Mottl @ 2000-11-13 7:48 ` Stephan Houben 0 siblings, 0 replies; 21+ messages in thread From: Stephan Houben @ 2000-11-13 7:48 UTC (permalink / raw) To: Markus Mottl, Juan J. Quintela; +Cc: caml-list On Fri, 10 Nov 2000, Markus Mottl wrote: > Programming OCaml is even more fun with Vim! :-) Especially with the ocaml.vim mode! Keep up the good work! Stephan -- ir. Stephan H.M.J. Houben tel. +31-40-2474358 / +31-40-2743497 e-mail: stephanh@win.tue.nl ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-09 16:20 ` Juan J. Quintela 2000-11-10 10:06 ` Markus Mottl @ 2000-11-10 19:06 ` Remi VANICAT 1 sibling, 0 replies; 21+ messages in thread From: Remi VANICAT @ 2000-11-10 19:06 UTC (permalink / raw) To: Juan J. Quintela; +Cc: Markus Mottl, bcpierce, Mattias Waldau, caml-list "Juan J. Quintela" <quintela@fi.udc.es> writes: > >>>>> "markus" == Markus Mottl <mottl@miss.wu-wien.ac.at> writes: > > markus> On Fri, 03 Nov 2000, bcpierce@cis.upenn.edu wrote: > >> I find that Emacs is an excellent tool for searching for functions in > >> the OCaml library. The developers have helpfully provided a pure-ascii > >> version of the documentation, and a couple of incremental searches > >> usually gets me to what I want in a few second. > > markus> VIM-users might want to put the following function definition into their > markus> .bashrc-file: > > markus> function ocdoc () { command vim -R $OCAMLLIBPATH/$1; } > > markus> where $OCAMLLIBPATH is set to the location of the library directory. A > markus> simple e.g. "ocdoc list.mli" (or also "ocdoc list.ml") on the command > markus> line will display the nicely highlighted code in a shell window (starting > markus> up Emacs in a similar way is just too slow :-) > > Have you ever heard of emacsclient???? why use emacsclient ? if you use emacs, you can do an Emacs command to do the work, after all, are'nt you making your job in Emacs ? say : (defun ocdoc (lib) (interactive "sThe library file: ") (view-file (concat ocaml-library-path lib))) (suposed that the emacs variable ocaml-lib-path is already set.) and the M-x ocdoc will do the job... Tuareg already have a similar binding -- Rémi Vanicat vanicat@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~vanicat ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-03 8:44 ` Good programming languages (Was: Redefinition doesn't work) Mattias Waldau 2000-11-03 15:27 ` bcpierce @ 2000-11-06 6:17 ` Francisco Reyes 2000-11-07 17:36 ` Brian Rogoff 1 sibling, 1 reply; 21+ messages in thread From: Francisco Reyes @ 2000-11-06 6:17 UTC (permalink / raw) To: caml-list, Mattias Waldau On Fri, 3 Nov 2000 09:44:11 +0100, Mattias Waldau wrote: >1. typed (to find typo-like bugs, or when changing the program) >2. interactive environment (to be able to test hard part of the program >without have to write elaborate function just for testing) >3. easy to use and understand libraries. >4. good syntax, which makes it easy to write the correct code >5. fast >6. portable, works on windows and linux >7. good support or good open source team >8. cheap > >3 for interactive environment (better than C, Java, SML, but much worse than >Lisp, Prolog, Scheme, examples of problem: #relet, not very good >emacs-modes, no object-browser), 2 for interactive. In my case at least Ocaml still shows too much of it's research background. It is taking me some time to get used to or even understand the output of the interactive environment. >2 for easy to use libraries (it is so hard to find the right function, I >have to search thru the PDF-file all the time), So far from the little I have seen it is not the libraries that it is a problem. It is the docs and the examples. I asked once if it was possible to contribute to the documentation and got no answer. For instance there is no samples with the libraries so for beginners it is difficult at the beginning to understand how to use a library because there are no examples. To make things worse I bought a book to try and learn Caml and the examples/exercises are highly math driven. I find this too be a horrible thing to have done. When I look at the exercises I spend more time trying to thing how the math is going to work out than how I am going to program the thing. Example: the first exercise is to prove that Ax^2 + bx + c = 0 is solvable given three parameters a,b,c. For someone who is contantly doing math this is probably trivial, but I have not taken any math clases on years and I don't see the point on linking the exercises so much to math. This perhaps is linked to the previous(current?) set of intended users. If Ocaml is to ever become a general purpose language then the docs/examples need to be less theorical and more practical. >2 for good syntax (it is very easy to spend a lot of time trying to get the >program to compile, for example I called a attribute in a record 'value', >and that works sometimes I have noticed :-), I agree with the 2. I don't know if it is my lack of having worked with other functional languages, but I find the Ocaml syntax strange. francisco Moderator of the Corporate BSD list http://www.egroups.com/group/BSD_Corporate ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Good programming languages (Was: Redefinition doesn't work) 2000-11-06 6:17 ` Francisco Reyes @ 2000-11-07 17:36 ` Brian Rogoff 0 siblings, 0 replies; 21+ messages in thread From: Brian Rogoff @ 2000-11-07 17:36 UTC (permalink / raw) To: Francisco Reyes; +Cc: caml-list On Mon, 6 Nov 2000, Francisco Reyes wrote: > 2 for interactive. > In my case at least Ocaml still shows too much of it's research > background. It is taking me some time to get used to or even > understand the output of the interactive environment. Well, it will only get better with specific comments for improvements. Saying "interactive mode sucks" sucks. If you have problems understanding the output (inferred types?) from the top level then post a question here or on comp.lang.functional. > So far from the little I have seen it is not the libraries that > it is a problem. It is the docs and the examples. I asked once > if it was possible to contribute to the documentation and got no > answer. How about just writing some docs that you'd like to see and putting them on a web page? No need to ask the team at INRIA for permission, and anyways, I'd rather that they were busy adding recursive modules and overloading to Ocaml than adding more instructional docs ;-). > For instance there is no samples with the libraries so > for beginners it is difficult at the beginning to understand how > to use a library because there are no examples. If you ask a specific question like "Can someone show me how to use the Format module to do ..." then someone, maybe even me, will happily cobble together an example, but vague comments like the above are tough to help with. Hopefully when we have an English version of the OReilly book you'll find more satisfactory examples. > To make things worse I bought a book to try and learn Caml and the > examples/exercises are highly math driven. I find this too be a > horrible thing to have done. Most people who learn Ocaml are strong in maths so this is natural. If you stick with Caml you'll find lots of compiler oriented examples too. Sorry to be a broken record here but why not ask for examples of the kind that specifically interest you? If you want to understand Unison then maybe you are more of a systems programming kind of guy and you want to understand how the Unix module can be used? > When I look at the exercises I > spend more time trying to thing how the math is going to work > out than how I am going to program the thing. Example: the first > exercise is to prove that Ax^2 + bx + c = 0 is solvable given > three parameters a,b,c. Well, the translator must have been inaccurate because it is *always* solvable, so you have to infer that they mean "has real roots" :-). > For someone who is contantly doing math > this is probably trivial, but I have not taken any math clases > on years and I don't see the point on linking the exercises so > much to math. This perhaps is linked to the previous(current?) > set of intended users. Unfortunately, we run into the problem that a large number of potential users probably couldn't care less about the examples that interest you either. If you come up with some examples that you find illuminating and would like to share them then by all means do so. > If Ocaml is to ever become a general purpose language then the > docs/examples need to be less theorical and more practical. Ocaml already is a general purpose language, thanks. I agree that we need more documents in order to spread the knowledge. However, I like the examples that you find too theoretical. I work in software for VLSI design, so examples from maths, compilers, computational geometry, graph theory, etc. all seem very practical to me. > >2 for good syntax (it is very easy to spend a lot of time trying to get the > >program to compile, for example I called a attribute in a record 'value', > >and that works sometimes I have noticed :-), > > I agree with the 2. I don't know if it is my lack of having > worked with other functional languages, but I find the Ocaml > syntax strange. I'm not terribly thrilled by the syntax either, but I hardly see how it gets a 2 from you after you showed such deference to Perl. Perl and C++ are syntactic abominations. -- Brian ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 11:06 ` Pierre Weis 2000-10-31 11:52 ` Sven LUTHER @ 2000-10-31 14:16 ` Frank Atanassow 2000-10-31 17:07 ` Pierre Weis 1 sibling, 1 reply; 21+ messages in thread From: Frank Atanassow @ 2000-10-31 14:16 UTC (permalink / raw) To: Pierre Weis; +Cc: jay, caml-list Pierre Weis writes: > > when user redefines some function, isn't it exactly the user's intention > > to redefine all the bindings already defined not only those following that > > redefinition? > > No, I guess it is not the intention of the user, since he does not > know the set of bindings that uses the function he is redefining. Maybe I missed it, but one relevant thing I did not see mentioned in this discussion is the fact that if a value x is rebound, and the type of the new x differs from that of the old, then some values whose implementation (definition) depend on x may become ill-typed. -- Frank Atanassow, Dept. of Computer Science, Utrecht University Padualaan 14, PO Box 80.089, 3508 TB Utrecht, Netherlands Tel +31 (030) 253-1012, Fax +31 (030) 251-3791 ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Redefinition doesn't work 2000-10-31 14:16 ` Redefinition doesn't work Frank Atanassow @ 2000-10-31 17:07 ` Pierre Weis 2000-10-31 17:26 ` LINUX MANDRAKE -> CAMLTK? mlf 0 siblings, 1 reply; 21+ messages in thread From: Pierre Weis @ 2000-10-31 17:07 UTC (permalink / raw) To: Frank Atanassow; +Cc: caml-list > Maybe I missed it, but one relevant thing I did not see mentioned in this > discussion is the fact that if a value x is rebound, and the type of the > new x differs from that of the old, then some values whose implementation > (definition) depend on x may become ill-typed. > > -- > Frank Atanassow, Dept. of Computer Science, Utrecht University > Padualaan 14, PO Box 80.089, 3508 TB Utrecht, Netherlands > Tel +31 (030) 253-1012, Fax +31 (030) 251-3791 Thank you for the precision, but I took it for ganted that the type (scheme) assigned by the type-checker to the new identifier was compatible with the (rebound) identifier's type scheme (more precisely if x has type scheme sigma and you redefine x with type scheme sigma', then sigma' must be more general than sigma). Otherwise the idea of redefinition is pointless since any thing can occur after a redefinition and the language becomes unsafe. Best regards, Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/ ^ permalink raw reply [flat|nested] 21+ messages in thread
* LINUX MANDRAKE -> CAMLTK? 2000-10-31 17:07 ` Pierre Weis @ 2000-10-31 17:26 ` mlf 2000-11-02 20:21 ` Pierre Weis 0 siblings, 1 reply; 21+ messages in thread From: mlf @ 2000-10-31 17:26 UTC (permalink / raw) To: caml-list i need help because i can't compile camltk library and i need this library . i got linux mandrake 7.1 version i use tk8 and tcl8. the compilation stop because it can't find tk_createmainwindow what can i do ? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: LINUX MANDRAKE -> CAMLTK? 2000-10-31 17:26 ` LINUX MANDRAKE -> CAMLTK? mlf @ 2000-11-02 20:21 ` Pierre Weis 0 siblings, 0 replies; 21+ messages in thread From: Pierre Weis @ 2000-11-02 20:21 UTC (permalink / raw) To: mlf; +Cc: caml-list > i need help because i can't compile camltk library and i need this library . > i got linux mandrake 7.1 version > i use tk8 and tcl8. > the compilation stop because it can't find tk_createmainwindow > what can i do ? Right, this function desappeared from recent versions of Tk. I corrected this interface in the current source files of Caml Light (the 0.75 next version of Caml Light). You can pick up the new version of the CamlTk library for Caml Light as: http://pauillac.inria.fr/~weis/camltk4.tar.gz You should install the file in the contrib directory in place of the old version, and run make as usual. Hope this helps, Pierre Weis INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/ ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2000-11-13 8:17 UTC | newest] Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <200010300739.IAA13016@pauillac.inria.fr> 2000-10-30 23:38 ` Redefinition doesn't work Jaeyoun Chung 2000-10-31 11:06 ` Pierre Weis 2000-10-31 11:52 ` Sven LUTHER 2000-10-31 16:47 ` Pierre Weis 2000-10-31 18:55 ` Stefan Monnier 2000-11-02 15:42 ` Pierre Weis 2000-11-03 3:10 ` Stefan Monnier 2000-11-03 8:44 ` Good programming languages (Was: Redefinition doesn't work) Mattias Waldau 2000-11-03 15:27 ` bcpierce 2000-11-06 0:17 ` Jacques Garrigue 2000-11-08 18:42 ` Markus Mottl 2000-11-09 16:20 ` Juan J. Quintela 2000-11-10 10:06 ` Markus Mottl 2000-11-13 7:48 ` Stephan Houben 2000-11-10 19:06 ` Remi VANICAT 2000-11-06 6:17 ` Francisco Reyes 2000-11-07 17:36 ` Brian Rogoff 2000-10-31 14:16 ` Redefinition doesn't work Frank Atanassow 2000-10-31 17:07 ` Pierre Weis 2000-10-31 17:26 ` LINUX MANDRAKE -> CAMLTK? mlf 2000-11-02 20:21 ` Pierre Weis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox