Re: Core screwed up Utop.
"Douglas Lewit [email protected] [ocaml_beginners]" <[email protected]> Sat, 24 Sep 2016 22:14:40 -0500
| Newsgroups | gmane.comp.lang.ocaml.beginners |
|---|---|
| Message-ID | <CAM0XMJTbUtVipfAt5=LTWFrNOoubakoxg8r5Tp=ttYYLM2Rw-Q@mail.gmail.com> |
But I did use opam! Or at least I thought I did. :-( Oh well, I'm glad this is not my only computer!!! On Sat, Sep 24, 2016 at 6:17 PM, Kenneth Miller [email protected] [ocaml_beginners] <[email protected]> wrote: > > > You did all that stuff manually when you could have been using opam?? > > > On Saturday, September 24, 2016 6:20 PM, "Douglas Lewit [email protected] > [ocaml_beginners]" <[email protected]> wrote: > > > > Hi everyone, > > I went on github ( a real computer jungle for sure! ) and upgraded to > Ocaml 4.03. Then I installed Core, which I believe is a library containing > all of Jane Street's contributions to the Ocaml language. That screwed up > my Utop installation, so I tried to reinstall Utop. No success with that. > There were many error messages, but the primary failure had to do with a > dependency called "*lwt*". I did a Google search and discovered that > some other Ocaml users have had problems with this dependency as well. I'm > not really sure how to fix it. I can still use Ocaml's default top-level, > which is okay, but Utop is really fantastic! Utop is way better than > Ocaml's default top-level. Any suggestions? Much appreciated. > > Best, > > Douglas Lewit > > P.S. Could someone provide some feedback on the following code? It works > well for getting every nth member of a list, but isn't there an easier way > to do this? I just thought it was a lot of work to accomplish a more or > less simple task. Thanks. > > *let everyNth ls n = * > * let rec everynth lst m = * > * match lst with * > * |[ ] -> [ ]* > * |head :: tail -> if m mod n = 0 then head :: everynth > tail (m + 1)* > * else everynth tail (m + 1) in * > * everynth ls 1 ;;* > > An interesting side note here. This recursive function can be implemented > in Ruby, but of course the syntax is a tiny bit different. ( For example, > instead of match lst with [ ] or head :: tail you would do something like > if lst == [ ] then [ ] else head, *tail = lst ......... etc, etc. But > what's really interesting is that with Ruby the inner function must be > declared as a lambda expression. If it's a regular function defined using > the "def" keyword then the inner function cannot "see" the variable n. > It's interesting to me how Ruby and Ocaml not only have different syntax > but also somewhat different rules regarding the scope of variables within > functions and nested functions. Ruby of course is mostly object-oriented, > but its creator was a very avid LISP programmer and for that reason decided > to endow Ruby with certain important functional features. So even though > Ruby is mostly object-oriented the language has some powerful functional > features that remind me a lot of Ocaml, LISP, Haskell, Erlang, etc, etc. > For example, Ruby does a pretty good job at recursion, currying, etc. > Okay, that's it for now. Thanks! > > > > >