It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
In scheme I have to use random to define a procedure that accepts no arguments and returns an integer in the range 1 to 10, inclusive and i cant use if. im lost =(
If your Scheme provides a random function, you want either
(define (1-10-rand)
(+ 1 (random 10)))
or
(define (1-10-rand)
(floor (* 10 (random))))
depending on whether you have (random n) --> integer in [0, n-1]) or (random) -> float in [0,1]
Be advised that this isn't standards-compliant. For absolute portability, write your own RNG.
Related
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
I just heard something very insteresting but cannot find any ressources.
The story is that when faced with an algorithmic problem that requiered multiple ifs, one student of a friend did answer with a mathematic one liner.
Now I already knew that you could do anyting with math but I want to be able to do it.
From what I know it might be possible to do a loop given the shape of those function, but conditions?
Does someone know how to resolve something like:
IF boolean
THEN expression
ELSE expression2
in math terms (without Bool algebra)?
Best regards,
Sarfraz
Assuming boolean is either 0 or 1, and expressions are mathematical:
expr = boolean * expression + (1-boolean) * expression2
Provided that boolean is 0 or 1:
result = boolean*expression+(1-boolean)*expression2
Are you referring to a multiplexer?
If the boolean is S, expression is A and expression2 is B, then the formula for result Z is
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 9 years ago.
For example:
(check-expect(2-list empty (list 3 4)) empty)
(check-expect(process-2-lists (list "nice" 'blue) empty)(list "nice" 'blue))
(check-expect(process-2-lists (list "nice" 'blue 5 10 5 'blue 5) (list "nice" 5 5 'red "wow")) (list 'blue 10 'blue))
I'll give you some hints, as usual I expect people to solve their own homework. It's the only way to learn!
(define (process-2-lists l1 l2)
(cond (<???> ; if the first list is empty
<???>) ; then we return the empty list
(<???> ; if the first element in l1 is not in l2 (*)
(cons <???> ; then we add it to the result using cons
(process-2-lists <???> l2))) ; and advance the recursion
(else ; otherwise
(process-2-lists <???> l2)))) ; advance the recursion adding nothing
Notice that we only need to traverse one of the lists, we need the other one for checking against it. The key line here is the one marked with (*). How are we going to do this? well you could write your own helper procedure for testing membership of an element in another list, but if you take a look at the documentation you'll find just what you need.
filter item in list b.
(filter
(lambda (item)
(not (member item b)))
a)
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
How puts variable in iterators code Ruby
EX: (1,2,3).select { |v| puts v > 2}
Seems syntax error, I think you want something like this
[1,2,3].select { |v| puts v > 2 }
output would be :
false
false
true
Take a look here
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I want to convert the expression ((A + B) * C – (D – E) ^ (F + G)) to equivalent Prefix and Postfix notations. What answers do you get?
Well, there are many steps. Since the question does not reflet your evolution so far, I'll just give you some hints
Define the operations taken in account
Give them a priority
Define what an expression is
What should you do when an expression has parenthesis and when its not
This should get you on track
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I wish to define a predicate powerset(X, P) which is true when P is the powerset of X. Should work whether or not P is ground.
Since you use SICStus Prolog you can use the subseq0(+Sequence, ?SubSequence) from library(lists), which "is true when SubSequence is a subsequence of Sequence, but may be Sequence itself" (Quoting from the manual http://www.sics.se/sicstus/docs/4.0.2/html/sicstus/lib_002dlists.html).
?- setof(X, subseq0([a,b,c],X), Xs).
Xs = [[],[a],[a,b],[a,b,c],[a,c],[b],[b,c],[c]]
If you are not allowed to use library predicates you can implement the subseteq0 as explained in gnu Prolog powerset modification, which I quote here for the sake of completeness (with thanks to gusbro)
powerset([], []).
powerset([H|T], P) :- powerset(T,P).
powerset([H|T], [H|P]) :- powerset(T,P).