[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
Functional Programming & Mathematical Logic: Questions &
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /g/ - Technology

Thread replies: 140
Thread images: 18
File: Image.jpg (27 KB, 500x501) Image search: [Google]
Image.jpg
27 KB, 500x501
ITT:

Lambda Calculus, Haskell, Lisp, etc. all welcomed.
>>
>>54374756
Why is she so qt, bros?
>>
File: dsc1.png (1 MB, 1344x1196) Image search: [Google]
dsc1.png
1 MB, 1344x1196
>>54374797
Hello, would you like to program in Haskell today?
>>
>>54374827
Y-yes

I've never programmed before though
>>
>>54374756
Can someone explain what the Church–Rosser theorem is with an example?
>>
File: homer.jpg (26 KB, 800x600) Image search: [Google]
homer.jpg
26 KB, 800x600
I wish this board had more functional programmers.
>>
>>54375112
This board doesn't even have programmers at all

A bit of a newb question.
I learned Haskell two years ago, but have done nothing since and i wanted to get into functional programming again. I know how to program it, just need to refresh it. What languages do you recommend? I would really like it if it allowed me to have the most job opportunities, for that reason i have seen that Lisp and Scheme seem to be the most popular ones but I have also seen a lot of hate against them.

Anyways which functional program do you recommend nowadays
(sorry for my shitty english)
>>
>>54375717
I am learning Haskell, Java. Java only due to university studies but Haskell due to intellectual interest. There used to be 1-2 people that lurked here who knew this stuff in Haskell but haven't seen them in a while.
>>
>>54374988
http://stackoverflow.com/questions/33509954/explaining-the-church-rosser-theorem-in-basic-terms
>>
>>54375879
This is a perfectly clear example.
>>
File: misaka 10032.png (234 KB, 526x567) Image search: [Google]
misaka 10032.png
234 KB, 526x567
>>54374756
whats a monad?
>>
>>54376118
I'm pushing through my studies. Once I understand it I'll explain. Just began and I do have a math background :^)
>>
>>54376224
>>54376118
A monad is just a monoid in the category of endofunctors, what's the issue?
>>
What's the point of functional programming ?
>>
File: haskell-wallpaper.png (14 KB, 1920x1200) Image search: [Google]
haskell-wallpaper.png
14 KB, 1920x1200
>>54376118
>>54376224

The term monad has different meanings depending on the field. Like >>54376261

A monad in Haskell is simply a typeclass with the following functions:

class Applicative m => Monad m where
return :: a -> m a

(>>=) :: m a -> (a -> m b) -> m b


They should also abide the left/right-identity as well as associativity law. Since some GHC versions every Monad has to have an Applicative and therefor a Functor implementation (these two are also typeclasses).

>>54375717
It dependes on where you live. I've seen some Java jobs migrating to Scala in Germany, so it might be easier to find one with this choice. Check out http://functionalworks.com/
>>
>>54376428
More manageable programs with isolated state and simpler, more generalized parts.

Rich Hickey and Brian Will have a bunch of talks up on YouTube on why OO is a fucking mess and functional/procedural is the way to go. I can personally vouch for it, built a website functionally in Clojure, it's far smaller than it was in our previous C# ASP.NET version, and far more robust with clear isolation of potentially buggy, stateful code.
>>
>>54376569
Thanks a lot anon, scala seems like the used one. Will investigate further just in case, but seems like i might go with it
>>
>>54374756
>>54374827
cute, but the cock carousel she was riding on is probably bigger than london eye
>>
>>54376644
Can we see it?
>>
>>54376569
>http://functionalworks.com/
Thanks anon. Where are good resources for a beginner to learn Scala? Any good online text, tutorials?
>>
>>54376782
Um...no? It's my company's product.
>>
File: adsız.jpg (42 KB, 987x512) Image search: [Google]
adsız.jpg
42 KB, 987x512
hi anons
i need to find a algorithm which switches integer part and the other (dont know its english) part in a real number

for example, if input is "25.14", then output of algoritm must be "14.25"

any suggestions?
>>
>>54374756
>>54374827
Who is she?
>>
File: Beta Normal Form.png (1 MB, 1340x1205) Image search: [Google]
Beta Normal Form.png
1 MB, 1340x1205
>>54376677
https://www.coursera.org/course/progfun
>>
File: haskell_logo1.png (30 KB, 647x599) Image search: [Google]
haskell_logo1.png
30 KB, 647x599
>>54376998

Naive solution:
λ> :m +Data.List
λ> :m +Data.List.Split
λ> :set +m
λ> let f :: Double -> Double
| f = read . concat . intersperse "." . reverse . splitWhen (== '.') . show
|
λ> f 2.14
14.2
>>
>>54377179
thx but im using turbo-pascal
>>
What would you guys recommend learning first:

Haskell or Scala?
>>
File: neumann.jpg (20 KB, 340x314) Image search: [Google]
neumann.jpg
20 KB, 340x314
>>54377205
Well I would do something like this.

Let x be our number.
y = floor (x)
y = y / 10 until floor(y) == 0

If x was 2.14 then y is 0.2 now.

Now we need to get the 0.14.

z = x - floor(x) // 2.14 - 2.0 = 0.14

z = z * 10 until z == floor(z)

And at last: z + y => 14.2
>>
File: laser_bird.webm (1013 KB, 720x404) Image search: [Google]
laser_bird.webm
1013 KB, 720x404
>>54377354
>z = z * 10 until z == floor(z)
You ever heard of logarithms?
>>
>>54377354
>>54377385
Also
>y = y / 10 until floor(y) == 0
y = y - floor(y)
>>
File: book-cover-front.png (214 KB, 1530x1980) Image search: [Google]
book-cover-front.png
214 KB, 1530x1980
>>54377258

Haskell if you want to learn in a pure functional environment. IMHO it helps to understand the functional concepts better if you don't have an easy (or better - object oriented/iterative) way out. I like to think it makes you a better programmer in the long run.

Scala is more oriented in the interoperability with functional and OO style. This mix is not the way to go to learn functional programming, but it will be probably much easier to grasp the basics if you already know an OO language. The big plus is that the actor system gives you an extremly nice concurrency model, which can abuse some functional aspects more than Java.

I'm not a big fan, but as stated above it gets you jobs.

Communitywise both are represented and you will find alot of help on any questions.
>>
>>54377477
Thanks brother. I started reading the text you linked. Love it!

Here is my dilemma:

From a pure intellectual standpoint I want to learn Haskell. From an university required standpoint I am forced to learn and use Java. From a job standpoint I'm on a team that uses Scala, Spark, etc. On this particular team I'm not one of the guys that works on that sort of thing but I know my manager would support me tinkering with it.

I only have finite time this summer to learn whatever I want.

I'm in a dilemma of choosing to learn either:

Option 1:
-Java
-Haskell
-Algorithms

or
Option2:
-Java
-Scala
-Algorithms

(Java & algorithms to self-study ahead for classes).

It'd be more practical to do option 2 since I could directly apply scala/java on the job... but I'm more intellectually interested in option 1 and am devouring the book you linked....

What would you recommend man? Maybe I can mix both options?
>>
>>54374827
I'll program your pussy
>>
>>54376569
>>54375717

>muh monads
>muh functor

You'd be perceived as 800% less autistic if you simply told it like it is: they're simple wrapper types.
>>
>>54377416

That's what I did with z. That gets me
 2.14 - 2.0 = 0.14 


I want to get 0.2 from 2.14.

>>54377385

Yes, but I don't see the solution. Would you enlighten me?
>>
File: lolghc.png (30 KB, 350x259) Image search: [Google]
lolghc.png
30 KB, 350x259
>>54377576
I don't think this has to do anything with wrapper types at all. It's called ad-hoc polymorphism. Let's take for example Eq

class Eq a where
(==) :: Eq a => a -> a -> Bool


If I define this typeclass for a certain type, I can use the function == on this type and nothing more. It's the same with the monad class functions.
>>
>>54377694
So it's essentially a wrapper type. Got it.

Do keep trying to feed that ad-hoc polymorphism talk to the uninitiated, however. I'm sure they're understanding everything a totally made the connection that you're talking about function overloading.
>>
>>54376118
It's just a lax 2-functor from the terminal bicategory. (Lax since the identities are up to isomorphism)
>>
>>54376906
What is your company trying to hide from its users?
>>
>>54377529

This is how I got started. I've had an intro in programming with Java and next semester programming in Haskell. After that I got into the advanced Haskell course. Last year I've had a master course on Scala and even after I'd forgotten about Java at all, it was really easy to get into because the functional concepts were already known for me. The only thing I had to learn were the quirks of the langauge like Co-/Contravariance, streams, trampolining and actor systems.

It was really fun for me to learn Haskell because I fell in love with math while doing it. But it's completly understandable if you don't have the time doing both at the same time.

I would try to go with Scala because you already have possible careerchance and learn Haskell by yourself in your pace. The beginner-haskell irc is a friendly place and this book is by far the best place to start.
>>
So can Lisp be statically typed?

If I had a Lisp-y language where I could tag a variable with its type, could this be some kind of optional static typing?

Like, when I'm developing I leave types unspecified and dynamic, but then I tag it with the most specific type allowed. For example, the function takes a number but I don't say so, so the compiler can't optimize, but once I do say that it takes an int32, it can optimize and check arguments

Does this exist
>>
File: logo-and-text.png (18 KB, 396x120) Image search: [Google]
logo-and-text.png
18 KB, 396x120
>>54377947
A quick google got me this, don't know if it's what exactly what you want.

http://docs.racket-lang.org/ts-guide/
>>
>>54378045
How effective is it? Is there a comparison of the effects of using this system, performance-wise or any other dimension?
>>
>>54377907
Thanks I appreciate it. Then what I'll probably end up doing is learning Java (ick), and Scala on the side while focusing on Algorithms.

But what will most likely end up happening is learning Haskell and Algorithms all summer and a little bit of Java/Scala on the side.

I'll try to mix it up a bit over the summer. But right now my main focus should be on Java/Scala.

I'm in love with the book man. I can't stop reading it/working through the exercises.
>>
>>54374756
So, why are the languages you listed better than things like Python, C, or C++?
>>
Anyone here work in Ocaml?
>>
Someone explain to an applied math student what functional programming is. I can program in MATLAB and Java.
>>
>>54377576
>You'd be perceived as 800% less autistic if you simply told it like it is: they're simple wrapper types.
If that's the case then what do they wrap?
>>
File: trolling_haskell.png (343 KB, 583x2034) Image search: [Google]
trolling_haskell.png
343 KB, 583x2034
>>
>>54378148
Static typing has a runtime performance overheard of 0. (That's why it's static)

Dynamic typing is what adds an overhead.
>>
>>54378496
Java-like, ML-like, and Haskell-like types have overhead because everything is boxed (except primitives in Java and ints in ML).
>>
>>54378521
Boxes are untyped. Haskell only uses them because of nonstrict semantics. All type information is erased at compile time.

You may be confusing static typing with tagged unions. The latter add runtime overhead because you need to store the tag somewhere. (And storing a 1-bit tag as a 64-bit integer can be excessively wasteful) But that has nothing to do with static typing.
>>
Is this the Haskell thread from yesterday?

Good evening to all lambda-calculus bros.
It was epic to learn, I owe my CS degree to Lambda.

Now I work as a code baboon but that 2 semesters of learnign Lambda were so sweet. No regrets at all.
>>
>>54378559
No, it's because of parametric polymorphism (or Object, in the case of Java).

>(And storing a 1-bit tag as a 64-bit integer can be excessively wasteful) But that has nothing to do with static typing.
Tagged unions can be unboxed and they have a lot to do with static typing.
>>
>>54378559
>Haskell only uses them because of nonstrict semantics.
Correction: GHC only uses them

>No, it's because of parametric polymorphism (or Object, in the case of Java).
No no no you've got it all wrong! Parametric polymorphism is exactly the *opposite* of Java's Object-style (virtual interface) polymorphism.

Java's equivalent of parametric polymorphism is generic types.

In a statically typed language (like C++ or Haskell), parametric polymorphism is resolved at compile time.

C++ does it by actually generating as many copies of the function as needed (templating).

GHC does it using a mixture of C++-style templating and dictionary-passing (which is not to be confused with boxed values)

>Tagged unions can be unboxed
Yes, because they're completely orthogonal concepts.
>and they have a lot to do with static typing.
They really don't. Unions exist purely on the value level, types exist purely on the type level.

Haskell is not dependently typed. The type level in Haskell runs (fully!) at compile time. The value level in Haskell runs at the run time.

There is only a single connection between the two, and that is type classes (since type classes are projections from the type level into the value level, which can happen at runtime and therefore embed the type that was erased at compile time).

In general, dictionaries are the *only* instance in which types have any runtime performance impact whatsoever in GHC-compiled code. (But GHC also does a good job of specializing functions directly instead of relying on dictionary passing)
>>
>>54376644
Okay thank you
I'm mostly a game programmer so I don't really think functional will ever be the way to go in my case but I'll take a look
>>
>>54378756
To add on to this, maybe you just don't understand what boxed values are in GHC terminology?

Boxed values are used to enable nonstrict semantics. For the simplest example, consider the case of a pair (tuple), with ... representing an unevaluated thunk.

The type (Int, Int) can be partially evaluated to any of these degrees: (and ignoring the fact that Int is also boxed)

...
(..., ...)
(X, ...)
(..., Y)
(X, Y)


In the actual memory, this means that GHC can't just represent a pair of integers as two integers in memory, since it also needs to account (in some way) for the possibility of the integers not having been evaluated yet.

So instead, GHC stores a pair of pointers to code, which can be jumped into to evaluate the thunk (either evaluating it in the process, or just returning the value directly if it was already evaluated in the past).

This is precisely what we mean by boxing. The integers themselves are “boxed up” inside a thunk.

The alternative is so-called “unboxed” data structures, for example the unboxed pair (# Int, Int #).

In memory, that is really just a pair of integers. (Again ignoring the fact that Int is itself boxed)
>>
>>54378357
yeah, I mostly do OCaml
>>
>>54376569
$150,000+ for skills in scala, hadoop, hive/hue, spark? Dang bro. That's what I'm going to start learning ASAP
>>
File: Browns representability theorem.png (1 MB, 1343x1202) Image search: [Google]
Browns representability theorem.png
1 MB, 1343x1202
Let's learn Haskell!
>>
>>54379931
Who is that qt?
>>
>>54379990
The Supreme Goddess of Functional Programming.
>>
>>54380171
where
>>
If this is friendly thread then what is "lambda programming"? Can you recommend me some links/books about "big O" and complexity of algorithms.
>>
>>54376998
var n = 25.14;
var o = parseFloat(n.toString().split('.').reverse().join('.'));
console.log(0);
>>
>>54380196
>lambda programming
lambda refers to lambda calculus, which is a simplified model of universal computation based on function application and evaluation

lambda functions in programming language refer to functions with similar properties to those in the lambda calculus: they're anonymous and they enclose their environment (which is analogous to term rewriting in LC).

“lambda programming” is not a thing people say

>big O
https://en.wikipedia.org/wiki/Big_O_notation#Formal_definition
>>
>>54380389
Good answer
>>
>>54380196
big O is a simple way of expressing the cost of something
e.g. O(n) costs n operations, the lower the better

lambda expressions are generally simple ways of performing operations on lists
e.g. myList = { "apple", "banana" }
myList.Where(i => i[0]='a'); //=> returns list with just apple in it
>>
>>54378484
this is the faggiest reddit livejournal post ive ever seen
>>
What online resources are best to learn discrete mathematics?
>>
>>54382250
Concrete Mathematics
>>
>>54382250
The duck book.
>>
>>54381600
>e.g. O(n) costs n operations, the lower the better
wrong
>>
>>54381600
>lambda expressions are generally simple ways of performing operations on lists
also wrong
>>
>>54382295
What is that?
>>
>>54375858
Seriously what is the use of knowing haskel? Is it in anyway useful or productive?
>>
>>54382634
Common Lisp > Scheme > Clojure > Haskell > Racket > Scala
>>
>>54382669
Mostly agree.. but why is racket so far below scheme?
>>
>>54382859
because no libs
>>
>>54378484
Welp, that pic actually made me want to learn haskell
Fucking ADD i need to control myself, I'm learning lisp
>>
>>54382669
I'd swap clojure and Haskell
>>
>>54382669
>(> Common-Lisp Scheme Clojure Haskell Racket Scala)
>>
>>54378337
C is a language for writing programs that operate on the virtual memory of the program itself. Operates in words and pointers.
C++ is C on steroids, or, a poor OOP layer on top of C, it's still very low level
Python not too bad I guess, I personally don't like it. It still encourages an imperative (procedural, whatever) style, moreso since "there is only one way to do it" which sounds to me like a shitty way of thinking. And it's rigid.
In sum, it's okay if you know the paradigm of the C family (C, C++, Python, Java, PHP...) but you can only become a better programmer if you find out abot other paradigms where problems are not always solved by sequencing actions in a linear fashion but rather as relation of entities that allow for your language to be more succint.
Lisp, Haskell, Prolog, Smalltalk, they're all quite different from your C-likes and really shift the way you think about programming, and so you can take that knowledge and apply it to your programming, especially in new languages that are starting to implement features from these other paradigms within the C paradigm (such as python, javascript and perl)
>>
File: kvrall2e.jpg (117 KB, 604x533) Image search: [Google]
kvrall2e.jpg
117 KB, 604x533
>>54383152
fair enough
>>54383218
f-fair enough
>>
File: CoqLogo.png (6 KB, 128x128) Image search: [Google]
CoqLogo.png
6 KB, 128x128
Any Coq bros ITT?
>>
>>54383408
I love cock as well
>>
>>54383408
Any SJWs lose their shit over this logo yet?
>>
>>54383408
I'm actually learning Lean right now.
>>
>>54375717
Here are three functional programming languages that are popular.
If you like to try functional Java? Scala.
Lisp running on JVM? Clojure
Tired of C# and wants to use .NET? F#.

I would say Scala out of these three is the least "pure" functional language (java syntax, mutable variables as default etc). F# is most similar to Haskell if you look at the syntax.

I think clojure is the most popular language out if these three. If not, then scala. F# is the youngest language out of these but is getting more and more popular too.
>>
>>54383810
Actually, clojure is newer than F# (2007 vs 2005).
>>
>>54383852
Which of these languages will bet you the highest salary and biggest demand?
>>
>>54383893
Probably clojure; I don't know or care really.
>>
I don't understand why you would use functional programming over procedural.
Procedural just works, and adopting certain tenets of OOP works even better.
>>
>>54383999
Because some noobs think functional means procedural.
>>
>>54383810
>Lisp running on JVM? Clojure
Is ABCL and Kawa actually. Clojure isn't lisp.
>>
>>54383999
Why the hell would you want to use a procedural language over a declarative one?
>>
>>54384108
HTML and CSS are the only declarative languages you'll find at a university.
>>
>>54384149
What do universities have to do with anything? This thread isn't about java and python.
>>
>>54384149
What about Haskell, Prolog?
>>
>>54384205
Neither of them are declarative. Prolog is close, however.
>>
>>54384200
Why do universities have 2 semesters worth of java courses followed by a data structures course also in java before branching out to OS in ASM and C?
>>
>>54384309
Haskell and declarative programming go hand in hand. The haskell website's headline specifically says "Declarative, statically typed code."
>>
Here's a question for you OP, if Haskell is so good, how come you can't get a job or build anything useful with it?
>>
>>54384478
Dunno. Maybe because i'm lazy neet?
>>
>>54384478
I'm not a huge fan of haskell, but compared to some of the other languages mentioned here, there is a lot more useful software written in haskell (e.g. pandoc, darcs, etc.). Just because it's not as popular as other languages doesn't mean it's uselese

And here is a list of companies that have actually used haskell:
haskell.org/Haskell_in_industry

Facebook uses haskell and has even released a library (haxl).
>>
why isn't this constant?
fold _ v [] = v
fold f v (x:xs) = fold f a xs
where a = 0 `seq` (v `f` x)
>>
Anyone here good at mathematical induction? How do I get good at inductions that involve irrational numbers?

For example, exercise 1.13 in SICP is the only thing in the first chapter I'm still not quite sure on.
>>
>>54385249

in induction you start by showing the base case (trivial). Then you assume it's true for some n=k and show that if it's true for some arbitrary k then this implies it's true for k+1
>>
>>54383238
I've found it's not too hard to apply functional concepts to python or c#. Honestly I think the biggest jump in my progress in C was learning functional programming. You can clean things up a lot by reducing dependency on state, focusing on immutability, and breaking the problem up into purely functional functions and limiting i/o
>>
>>54385277
Yeah, that much is easy for proving something like the explicit form of a standard summation or recurrence relation true.

But irrational numbers taking the explicit form throws everything off for me, like in proving that Fib(n) is the closest integer to φn/√5, φ of course being the golden ratio (1 + √5)/ 2, you need to prove that Fib(n) = (φn - ψn) / √5 where ψ = (1 - √5) / 2.

How would I know to do that if the book didn't give me the hint?
>>
>>54385340
ask /sci/ in >>>/sci/8050515
>>
someone tell me the usefulness of proving a "law" or identity
>>
>>54385340
There are known techniques for solving recurrence relations. If you didn't have a hint, you would use one of those techniques. No one tries to solve these things blindly. Smart mathematicians already did all the heavy lifting, so you should use their work.

If you've studied differential equations, you should know how to solve a second-order linear homogeneous differential equation with constant coefficients.
Well, the Fibonacci Sequence is a second-order linear homogeneous RECURRENCE RELATION with constant coefficients. The technique for solving it is pretty much the same as the technique for the differential equation.
people.uncw.edu/tompkinsj/133/recursion/homogeneous.htm

"Second-order linear homogeneous _ with constant coefficients" is an obnoxiously long phrase.
>>
>>54385442
When you capitalized recurrence relation and noted its homogeneity I realized how dumb the question was, I just wasn't putting the pieces together the right way.

Thanks bro.
>>
>>54385513
It's not a dumb question. If you've never studied these techniques, of course you wouldn't know them. There are classes on this sort of thing for a reason.
>>
File: SMT.png (769 KB, 1695x1486) Image search: [Google]
SMT.png
769 KB, 1695x1486
Does anyone have experience with Satisfiability modulo theories?

I'm trying to decipher the notation.

I don't understand how to read

bE
bvE
mE

Can someone make sense of it?
>>
>>54385396

It should be forbidden to say these things while using the Internet.
>>
What is the most practical purely functional language in terms of solving real world problems ?
>>
>>54385770
none, but multi includes F#, Scala, and closure
>>
I want to learn something that gives me math background while I learn programming.

Would you guys recommend going through SICP or the Haskell book (one recommended earlier) this summer?
>>
>>54385856
definitely SICP
>>
>>54385905
Okay thanks.

What kind of math does it introduce you to?
>>
>>54385956
See
>>54385340
for an example, induction and asymptotic notation are introduced in the first chapter though if you've taken discrete math it will those will be nothing new to you, it gets heavier from there I presume but you'll probably progress pretty slowly as I am right now, especially if you have a job and work to really understand all of it (do all the exercises, all of them)
>>
>>54386059
> especially if you have a job and work to really understand all of it (do all the exercises, all of them)

Bingo. Same boat as you. I downloaded the pdf. Are you following any video lectures or just reading through the book? Also, from your research have you found Scheme used in industry, or is it one of those things you study and become smarter kind of thing?

I found two lecture videos, one from MIT and one from Berkeley. A friend of mine from Berk recommended this book to me a few days ago, so when I saw you post the question it reminded me to go start it.
>>
I have a mathematical background. What fields of math does Haskell(and other functional languages) uses?
>>
>>54386128
Looks like mathematical logic (lambda calculus) and category theory + abstract algebra.
>>
>>54386110
>Are you following any video lectures or just reading through the book?
I'm primarily just reading the book, though the video lectures and MIT OCW page for the course are useful references. (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/lecture-notes/)

>Also, from your research have you found Scheme used in industry, or is it one of those things you study and become smarter kind of thing?
Most likely the latter, but it's definitely worthwhile in that coding in it teaches good practice that should apply to just about any programming language.
>>
>>54377006
I think that she's a model for warby parker.
>>
>>54386201
Thanks. Lastly, what OS are you using? I'm using mac and trying to figure out how to download mit scheme on my computer and which editor to use
>>
>>54383408
is that a penis with, like, reverse phimosis?
>>
>>54386246
not him, but download Dr Racket
>>
>>54386246
I'm using debian, I installed mit scheme through my package manager and use vim to edit so I pretty much work entirely from the command line.

You should be able to as well, do you have homebrew installed? Vim should be preinstalled but I know mit-scheme won't be, but just install homebrew through the ruby script on the page for it and then you can just "brew install mit-scheme".

Also, I recommend getting a paper copy of the book because this is very much a "work out your solutions on paper and pass them to the interpreter to check that they are correct" kind of book, having a paper copy of the book really helps in sticking with it I think.
>>
>>54386343
it's mean for HtDP, but iirc it has a Scheme mode. it's the comfiest minimalist lisp ide out there
>>
>>54386395
>>54386354
>>54386343
Cool thanks.
>>
>>54386354
>having a paper copy of the book really helps in sticking with it I think.
my sentiments as well.

someone keeps putting the book on hold at my library though, so i always have to return it after only a couple of weeks

que sera sera
>>
>>54385856
>>54385905

if you are just starting out and don't have a strong math background do you recommend learning discrete math before going through sicp?
>>
>>54386567
SICP introduces some discrete math concepts but its not required for you to know them in advance.

Cormen's Algorithms pretty much assumes you've completed two cycles of it, though.
>>
>>54386664
k
>>
so what, you guys spend hours using equational reasoning just to hopefully end up with a linear program that is unreadable?
>>
>>54386957
>unreadable
for u, scrub
Thread replies: 140
Thread images: 18

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.