FAQ Database Discussion Community


Using a single function to find min and max numbers in a list without using a driver function?

list,recursion,functional-programming,scheme
I am currently confused with the idea behind functional programming in general. I currently have a working solution to my problem (That is, finding the min and max of a list, and returning these in a new list) but to do that, my solution essentially requires 3 functions, and this...

Scheme: Using apply on a list of tuples

scheme,apply
How do I use apply in Scheme to multiply the first element of each tuple by a number? Example, if my list x = ( (1 2) (3 4) ) I want to do something like: (apply * 2 (car x)) so that it would return ( (2 2) (6...

Transforming this into an expression

scheme
Hi guys i'm wanted to know if i have the correct expression for this picture, if not why please (a((f(b c))(g h))e) ...

Reverse list in Racket in O(n)

scheme,lisp,racket
I need to write a recursive function in Scheme which takes a list of atoms and reverses it in linear time. I am only allowed to use define, lambda, cons, car, cdr, cond, let, and null? . Here is what I have so far: (define reverse (lambda (lat) (cond ((null?...

Returning from a function inside when statement

scheme,lisp,racket
All I'm trying to do is use a when statement to return a value :( I want the functionality of: if(x) return y And I'm trying to use: (when (x) y) But the when statement is not evaluating in a way that exits the function and return y. It just...

Tail Recursion Understanding

recursion,scheme,racket
I was wondering if anyone could walk me through tail recursion. I have this procedure I made in Racket and I would like a simple explanation on what steps I should take to utilize what I have in the form of tail recursion. The code in Racket is as follows,...

What this functions in Scheme language do?

function,functional-programming,scheme
I'm a newbie and I didn't understand very well the language. Could anyone please explain to me what this functions do? First function: (define (x l) (cond ((null? l) 0) ((list? (car l)) (+ (x (car l)) (x (cdr l)))) (else (+ 1 (x (cdr l)))) )) Second function: (define...

Racket: using big bang and on-click

scheme,lisp,racket
I've somehow been able to draw a small basic image in racket (a house). Now, what I'm stuck with is, using big-bang to draw the image -- and then being able to click the roof of the house and have it change to another color. This is what I have...

How do I use SRFI-1 in Guile?

scheme,guile
I am trying to use srfi-1 in guile. I used the following code to include the srfi: (use-modules (srfi srfi-1)) However, I get an error saying that srfi is probably undefined. How should I used srfi? I tried googling this problem, but it seems that I am the first person...

Racket\Scheme compare and delete unwanted items in a list

scheme,racket
I have 2 lists: (Define list1 '("xx1" "xx2" xx3" "xx4" "xx5")) (Define list2 '("xx2" "xx4" "xx5")) the items in the list above are just an example, but either way it will be a string item. What I need to do is compare both lists and remove the items in list1...

Evaluating Function in Lisp

scheme,lisp
I'm new to Lisp and need help understanding this function and the evaluation of (map length '((a b c) (1 2 3 4 5) (v1 v2 v3 v4 v5 v6)))) The value is (3 5 6) (define (map f list) ; applies function f to each element of list (if...

How to Merge 2 lists into one in racket

scheme,racket
I have 2 dynamic lists that I would like to merge into one. Say '(1 2 3 4) and '(15 16) and get '(1 2 3 4 15 16) How can this be done?...

Simulate scheme define in common lisp

scheme,lisp,common-lisp
I wonder how to simulate the scheme define in common lisp,and want to write a macro for simulate the define. So what's the different between cl's defun deparameter defvar and scheme's define ,and how i can do this?

Racket recursive function for returning the sum of a list of squared numbers

scheme,racket
I am new to Racket, and I am trying to write a recursive function that takes a number n and returns the sum of the squares of the first n integers. For example, (this-function 3) returns 14 because 14 is 9 + 4 + 1 + 0. I tried creating...

What extension allows access to time function in r5rs?

time,scheme,r5rs
A 4-year-old old post suggests that one might be able access the current-seconds and related functions in the r5rs language. Here's why I ask: I'm a high school teacher new to Racket and we are using the r5rs language. I would like to introduce students to functions by starting with...

Racket random list-ref function

scheme,racket
Define a function that takes a non-empty list and returns an element of the list selected at random and with equal probability. (Do not use the built-in list-ref procedure.) I'm stuck on this. I feel like you would need to count the number of times the function has run...

How do you reverse a sequence in Racket?

scheme,racket
I'm learning Racket just for fun. I've got a question. Is there a way to reverse a sequence? A sort of generic function for reversing things like: (sequence-reverse "Hello") (sequence-reverse '(1 2 3)) ...

How to replace variable value inside cons cell in racket

scheme,racket
I would like to do something like this (cons '(someword,string->symbol somevarname) (restoflist)) but somevarname is never replaced by its value. I thought this was possible?...

What exactly is a “continuation prompt?”

scheme,racket,continuations,delimited-continuations
I'm trying to decipher the documentation call-with-continuation-prompt Applies proc to the given args with the current continuation extended by a prompt. The prompt is tagged by prompt-tag, which must be a result from either default-continuation-prompt-tag (the default) or make-continuation-prompt-tag. The result of proc is the result of the call-with-continuation-prompt call....

Defining cons, car and cdr with lambda - how does it work? [duplicate]

lambda,scheme,sicp,r5rs
This question already has an answer here: Use of lambda for cons/car/cdr definition in SICP 2 answers I can't seem to explain how this definition of cons, car and cdr works: (define (p-cons x y) (lambda (proc) (proc x y))) (define (p-car proc) (proc (lambda (p q) p))) (define...

Incrementing an alphabetic string in Scheme

scheme
I am trying to programmatically increment a purely alphabetical string in Scheme. Like this "MA", then "MB" and when it reaches "MZ", it should become "MAA" and so on till "MZZ" and then it should become "MAAA" and so on.The "M" needs to be added as a prefix for the...

Get the Sum of given number in scheme

scheme
Hi i want my function to sum digits such that the result is less than 10 (77 = 14=5). dont know why it's passing the base case (define (reduct n) (if(< n 10) n (+(modulo n 10)(reduct (truncate(/ n 10)))))) ...

Is there any difference between closure in Scheme and usual closure in other languages?

functional-programming,scheme,closures,sicp
I'm studying SICP right now. And I found the definition of closure in SICP is (maybe) different from closure definition in other languages. Here's what SICP says: The ability to create pairs whose elements are pairs is the essence of list structure's importance as a representational tool. We refer to...

Scheme - unpack list's elements into function [duplicate]

scheme
This question already has an answer here: How do I pass a list as a list of arguments in racket? 2 answers I have a function which takes an unlimited number of args such as (define (func . args)). Say I have a list '(1 2 3), how do...

Racket random function

scheme,racket
I'm having trouble with the random function. I have a function set up where: (define random-abcd (cond [(equal? (random 4) 0) 'A] [(equal? (random 4) 1) 'B] [(equal? (random 4) 2) 'C] [else 'D] )) However when I run this 'D comes out substantially more often than any of the...

How to manually flatten a list in Racket (Scheme)

scheme,racket,flatten,list-processing
How could one go about flattening a list without using the flatten function built in to racket? I understand that the default implementation of flatten is (define (flatten lst) (cond ((null? list) empty) ((list? (car lst)) (append (flatten (car lst)) (flatten (cdr lst)))) (else (cons (car lst) (flatten (cdr lst))))))...

Using MIT/GNU Scheme

scheme,edwin
I have downloaded the MIT/GNU Scheme implementation of LISP in order to understand Structure and Interpretation of Computer Programs. However, I am a bit confused about what I am dealing with when I launch the program. When the program is launched, I get two windows: the "MIT/GNU Scheme" window, and...

Max and min in Scheme

scheme,max,racket,min
I need to get the max and min of a list in scheme. I have the whole code but there is something wrong. I am not sure what, maybe with the parenthesis. Can anyone help? #lang racket (define (maxmin L) (cond ((null? L) '()) ((null? (cdr L)) (list (car L)...

Recursive sublist? function

scheme
I can't seem to figure how to write a correct uscheme (A derivative of MIT Scheme) function that will return boolean whether a list contains a smaller list. I wrote this. (define sublist? (xs ys) (if (= xs '()) #t (if (= ys '()) #f (if (= (car xs) (car...

Returning an element and then deleting the element from a list in Scheme

scheme
I have a list in Scheme which contains numbers. I wrote a function that takes as input one number and a list of objects and checks if the confidence value of the object matches the number. Once I get the object whose confidence values matches the given number, I want...

Reverse the order of a given integer - Scheme

recursion,scheme,racket
ive been given a task in Scheme (Dr Racket) to reverse to order of a given digit. The solution should be recursive, and this is what i got this far.. The truth is, im not quite sure if the given algorithm even works because i get: " application: not a...

How do I use with-type to use Typed Racket fragments within untyped modules?

scheme,racket,typed-racket
The Typed Racket reference indicates that it's possible to use with-type to created “typed regions” within untyped code. The with-type form allows for localized Typed Racket regions in otherwise untyped code. It’s a little unclear how to actually use this, though. Obviously, using such a feature needs to take place...

Items disapear when `sort!`'ing a list in Guile

sorting,scheme,guile
I seem to have a case of disappearing items after invoking sort! on a list of strings: (I have derived this code from Autogen template that I was working on.) (use-modules (ice-9 pretty-print)) (let ((files '("log4cplus/socketappender.h" "log4cplus/qt4debugappender.h" "log4cplus/nteventlogappender.h" "log4cplus/ndc.h" "log4cplus/msttsappender.h" "log4cplus/mdc.h" "log4cplus/loglevel.h" "log4cplus/loggingmacros.h" "log4cplus/logger.h" "log4cplus/log4judpappender.h" "log4cplus/log4cplus.h" "log4cplus/layout.h" "log4cplus/hierarchylocker.h"...

Scheme nested lambda function

function,lambda,nested,scheme,sicp
I am a beginner in Scheme. I found this question in MIT exam 1 for SICP lecture. What's the value and type for – ((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5) I am having a hard time understanding how this function works. I am really confused about...

Scheme-Wrong type to apply #f error in code for checking a prime number

scheme,lisp
I am writing a program to check if a number is prime in Scheme. However, I have written the following code. I check out another question on StackOverflow where the OP was getting the same error. I checked whether I was committing the same mistake. I was not. I have...

Append list from assoc to another list in Scheme

scheme,lisp,r5rs
I'm a bit confused on how to append a list that I've gotten from the assoc procedure into another list, here is what I have: (define new-list (list 'test)) (define source-a (list '(a foo) '(b bar) '(c hello))) (append new-list (assoc 'a source-a)) (display new-list) The output is just (test)...

Can `match` in Racket have patterns with variables from an outer scope?

scope,scheme,pattern-matching,racket
Consider the following example: #lang racket (match '(cat . doge) [`(,a . ,b) (match b [a #t] [_ #f])] [_ "Not a pair"]) This is what I might write if I wanted to match pairs where the head and tail are the same. This doesn't work though because the second...

Unbound variable error when loading a procedure from an external file

scheme,chicken-scheme
I'm using Chicken Scheme 4.9.0.1 on a Cloud9 hosted workspace, built from source. I was trying it out with this (I mostly code with python, so I apologize for the weird parens syntax): (define load-module (lambda (filepath) (begin (load filepath) ) ) ) (define print (lambda (command) (begin (display command)...

Scheme Adding Terms from lists

scheme
I am writing a scheme program for performing operations on polynomials. I am currently working on a method that combines all like terms. For example, if I have the polynomial: 1x^2 + 2x^2 + 4x^3, the function should combine the likes terms 1x^2 and 2x^2 and output the final polynomial...

Scheme define-macro and/or define-syntax

macros,polymorphism,scheme,overloading
I want to create an overloaded Scheme macro for a simple form of polymorphism. That is, a macro smart enough to expand differently when given params of different types, so that (look-up key container) does the "right" thing for different kinds of containers. (define-macro (look-up key container) (cond ((table? container)...

No-argument (and) returns t

clojure,scheme,lisp,common-lisp
Both CL and Scheme define (and) to return t (or #t) with no arguments. I'm trying to understand the rationale for this. My naive assumption is that an empty set is false, and passing in zero arguments feels like passing in nothing that can be true. Edit: clojure follows the...

Add successive integers with recursive tests (conditionals)

scheme,sicp
My recursive function correctly sums all the integers, inclusively, between a and b. However, when I swap my arguments, the result is incorrect. I am reading SICP. My code is (scheme): (define (sum-integers a b) (if (> a b) (if (= (- a 1) b) (+ a b) (+ a(sum-integers...

MicroKanren - what are the terms?

scheme,minikanren
Having a little trouble understanding the core terms of the MicroKanren DSL. Section 4 says: Terms of the language are dened by the unify operator. Here, terms of the language consist of variables, objects deemed identical under eqv?, and pairs of the foregoing. But they never describe what the "pairs"...

Scheme full-house poke function

list,scheme,lisp,racket
I'm trying to define a function in Scheme that determines if a five-element list contains a full-house (that is, 3 elements are the same and the other 2 are the same, respectively). I have the outline in my head, although I'm messing up the syntax. I'm using and, let, to...

Turn list of list into image

scheme,racket
Okay, so I am trying to turn a list of a list of numbers into an image where each number represents a block with a color assigned to that number. For example: (define allig '((1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

Scheme - Replacing elements in a list with its index

scheme,racket
I am trying to replace the elements in a scheme list with its position. For example, calling: (position '((a b) c)) should return: '((0 1) 2) So far, my code keeps the list format, but the index is not updating. (define (position term1) (define index 0) (cond [(null? term1) '()]...

Creating, Displaying and Returning Random Numbers

scheme,mit-scheme
I need catch the numbers of function numerosR by separately because them I need know the major number, minor number and average of all numbers, but I don't know this is my code: (clear) (display "Ingrese un Numero entre 10 y 40: ") (define Numero (read)) ; Funcion numerosRamdon genera...

Join lists with overlap

scheme,racket
I'm trying to create a function that finds the area of overlap between two lists and returns the result of joining the two lists together. The overlap area is the longest suffix of the first list that matches a prefix of the second list and it only appears once in...

Remove duplicates from a list in Scheme

scheme
I need to remove consecutive duplicates from a list in Scheme for ex: (remove '(e f f g h h e e)) should return (e f g h e) This is what I have but I keep getting an error: (define (remove lst) (cond ((null? lst '()) ((null? (cdr lst))...

“Mapping” Little Schemer to coderbyte challenge: Capitalize

javascript,arrays,recursion,scheme,the-little-schemer
After studying most of The Little Schemer, I've been trying my hand at some recursive solutions to Coderbyte challenges. After some fiddling I threw in cons and thought my upperConsIt would work to look through an array, find all of the instances of a particular letter and capitalize each. Ultimately,...

What does this Scheme code do?

scheme,let
Especially why we are using tailr and headr? I am not able to understand. (define (foo lst) (cond ((not (list? lst)) lst) ((null? lst) lst) (else (let* ((tail (cdr lst)) (head (car lst)) (tailr (foo tail)) (headr (foo head))) (append tailr (list headr)))))) ...

require/typed contract in racket fails

scheme,racket,typed-racket
I've tried looking at the docs but i can't find an example that i can use for my case. I need to import break from srfi/1. Here's my attempt. The example works in #lang racket. #lang typed/racket (require/typed (only-in srfi/1 break) ;[break (All (T) (-> (-> T Boolean) (Listof T)...

Generating n-grams with foldl in Racket

scheme,racket,fold
So I'm fiddling with Racket. Recursively generating n-grams from a list of words was pretty straightforward: (define (n-grams-recursive words n) (if (< (length words) n) '() (cons (take words n) (n-grams-recursive (cdr words) n)))) And the iterative version also pretty straightforward: (define (n-grams words n) (define (iter n-grams remaining-words) (if...

Converting string into lambda/value

scheme,eval,racket
I want the following code to work: (define fn.str "(lambda (x) (displayln x)") (define fn.callable (string->lambda fn.str)) ; and then 2 next lines should be valid (fn.callable 123) (apply fn.callable '(321)) But best I can get is to eval string and get output, instead my target is to get the...

How would I make this Racket code DRYer?

scheme,racket
I'm porting a Python script to Racket as a learning experience, and I have this function: (define (check-status) (define git [find-executable-path "git"]) (define-values (ckot out in err) (subprocess #f #f #f git "checkout" "-q" "master")) (define-values (local lout lin lerr) (subprocess #f #f #f git "rev-parse" "@")) (define-values (remote rout...

How to use symbols and lists in scheme to process data?

scheme,racket,grammar,bnf
I am a newbie in scheme, and I am in the process of writing a function that checks pairwise disjointess of rules (for the time being is incomplete), I used symbols and lists in order to represent the rues of the grammar. Uppercase symbol is a non-terminal in the grammar,...

How to have Guile on Ubuntu interpret Scheme source file?

scheme,interpreter,guile
First of all this might be really basic thing but I do not know how to proceed. I have Guile 2.0.9 and Libctl 3.2.2 installed on my Ubuntu 14.04.1 64-bit LTS. My aim is to write a source file in Scheme then have it interpret by Guile so I do...

How to use rlwrap in Gauche running on emacs in MinGW?

emacs,scheme
I am new to Scheme, and using gosh running on emacs buffer, in MinGW on Windows. It seems that people use readline or rlwrap to use history and more, but I still cannot figure out to accomplish the setting. Though it may be easy to run one on Linux using...

Detecting # in Scheme list

scheme,guile
I have a function which return a list of values. Some of these values may be empty lists themselves, while some are not. However, at the end of every list, there is a #<unspecified> value present. I understand that this value is returned when the function does not return anything....

I am trying to sum each parameter with a value, what is wrong with my code?

function,lambda,functional-programming,scheme
I am basically new to Scheme, and this is my second attempt to solve a certain problem. So what I am trying to do basically is sum each parameter we pass into the function, with an appropriate value for example: (sum 3 1 2 0 2) ;would return 228 Here...

Mapping curry to a list of parameters

functional-programming,scheme,racket,currying
I'm doing some exercises in Racket, and ran into a problem I couldn't seem to query the docs for. I want to generate the following curries of modulo for a list of divisors: (define multlist '[3 5]) (define modfuncs (map (lambda x ;@ make some modulos (curry modulo x)) multlist))...

Lisp: Why does (- 1e16 1) yield 10000000000000000 not 9999999999999999?

floating-point,scheme,lisp
Or rather, why does (= 1e16 (- 1e16 1)) return true? How can I receive more accurate answer?

Scheme: Why isn't my defined procedure being recognized?

scheme
(define rearrange (λ ignore (define (proc1 x y) (+ x y)) (foldr (λ (x y) (if (list? x) (append (rearrange x y) y) (if (procedure? x) (append y (list x)) (cons x y)))) empty '(a proc1 b)))) why isn't x being recognized as a procedure even though I defined it...

Any history background about the “yin-yang puzzle” in detail?

scheme,continuations
There are quite a few questions about the "yin-yang puzzle" already in Stackoverflow: How does the yin yang puzzle work? (I assume this is the first one) Haskell (this is my question) C# 5.0 Typed languages ... (there could be something I didn't find yet) I was wondering when and...

Elegant Way Of Accounting For “A” When Converting Strings To 26-Ary And Back?

scheme,racket,base,hexavigesimal
I need to convert strings to 26-ary and then be able to convert them back. My current code is: (define (26-ary-word s) (let ([len (string-length s)]) (let f ([n 0] [acc (+ (- (char->integer (string-ref s 0)) 97) 1)]) ; adding 1 so that all strings start with 'b' (if...

Transforming a function into a list in Drracket

scheme,racket
I create a function which create list. I want to use that list in an another function so how can I do this? (define (myfunc L n) (if (= n 0) empty (cons (list-ref L (random 26)) (myfunc L (- n 1))))) I want to assing this function as a...

Racket lists incompatible with r6rs?

list,scheme,racket,r6rs
I'm writing a program in which i have to reuse code from one of my professors. My program is written in Racket and the code i want to reuse is written in r6rs. When I want to test my program it always fails. This is because I call a procedure...

Scheme equivalence relation

math,scheme,equivalence
I need help defining a Scheme function that takes a partition (list of lists) and returns a list of pairs that represents an equivalence relation. I've started writing some code but I'm realizing I'm going in the wrong direction. I've been looking at this for hours with no progress. (define...

Why does `-` parameter order cause Racket REPL to run out of memory?

scheme,racket
I'm seeing an issue when swapping the order of parameters to the - function. ; source (define (compose f g) (lambda (x) (f (g x)))) (define (repeated f n) (if (= n 1) f (compose f (repeated f (- 1 n))) ; causes an out of memory error (compose f...

if statement in lambda Scheme

lambda,scheme
I'm a new schemer. I just want to ask if I can include if-statements in a lambda? For example, (lambda (x) (if e1 e2 e3)). I don't see why not, but my program just keep failing if I write this way. Thanks a lot! Here's my code here.I'm trying to...

Accessing call stack depth in Scheme

functional-programming,scheme,tail-recursion,callstack
In order to demonstrate the effectiveness of tail recursion, I would like a way to access the depth of the call stack dynamically in Scheme. Is there a way to do this? If not, is there a way to do this in other major functional languages (OCaml, Haskell, etc.)?...

Differences between two similar definitions

scheme
Is there any difference between (define make-point cons) and (define (make-point x y) (cons x y)) ? Is one more efficient than the other, or are they totally equivalent?...

Scheme several actions if an if-statement proves true

if-statement,syntax,scheme
The way I understand a scheme if-statement is that the first condition is when the if-statement is true, and the second statement is when it is false. What if I want several conditions for when the statement proves true? An example: (if (= a b) (set! ([a 2])) // This...

How to split a list into two parts in Scheme

scheme,racket
Example: (split '(1 2 3 4) '3) the Answer should be: ((1 2 3) 4) The function required 1 list and 1 number, the output should be nested list the nested list consist of all elements of "mylist" which are equal or less than the "num", and the greater number...

Selectively iterating over a list in Scheme

scheme
I have a list of objects in Scheme. Each object in turn is a list itself. I am using the map function to iterate over all the elements of the list and apply a function to them. However, I want to apply that function only if the element of the...

Create lists from lists

scheme,racket
I want to write a function which for n arguments will create n lists and each contains n-th element for every argument, for example: (aux '(1 2) '(3 4)) = `((1 3) (2 4)) I wrote such a function: (define (aux . args) (if (null? args) '() (cons (map car...

Dr Racket list function

scheme,racket
Define a procedure likenate that takes a list and returns the list with the symbol 'like inserted between each pair of adjacent elements in the given list. I feel like this should be really easy, but I keep getting lists of lists so the check-expects aren't working. I've been...

How to get only specific elements of list in racket

functional-programming,scheme,racket
Input: '(("may 001" 75 72) ("may 002" 75 75) ("may 003" 70 73) ("june 101" 55 55) ("june 104" 55 54) ("aug 201" 220 220)) Desired output: '(("may 001" 75 72) ("may 002" 75 75) ("may 003" 70 73)) How do I achieve this? I only want the may terms....

Racket Sum of Perfect Roots Implementation

list,scheme,racket
I am trying to write a Racket function that takes in a list of numbers as the input, and outputs the sum of the square roots of those numbers in the list that are perfect squares. The code I have currently does not compile, and is as follows: (define (sum-of-perfect-roots...

letrec in scheme with double brackets?

scheme
I am failing to understand the ribbon01 code, confused with the brackets. Can somebody explain it to me I am new to scheme (define ribbon01 (lambda (lat) ((letrec ((di (lambda (lat) (display lat)))) di) (cdr lat)))) (define ribbon02 (lambda (lat) (letrec (( di (lambda (lat) (display lat)))) (di (cdr lat)))))...

Pair? function applying on Quote in Racket

scheme,racket,quote,sicp
In order to implement derivative of given polynomial, I need to factorize the polynomial, i.e., (* 3 x y) should be the product of 3 and (* x y). So I implemented a function multiplicand to get the second factor of a product: (define (multiplicand p) (let ((second-factor (cdr (cdr...

Scheme Recursion Through Arguments

recursion,scheme
I'm brand new to Scheme, and this is a homework question, so please no outright answers. Here is my question: Write a recursive procedure (any? arg1 arg2 ...), where the argi's are boolean values. any? returns #t if any of its arguments is #t, and #f otherwise. These are the...

All: A Function Returning True if and only if All Elements of a List are True

scheme,racket
I am looking for a built-in function in Racket that will return True iff all the items in a list are true. I tried: (define (all lst) (when (equal? lst '()) #t) (if (not (car lst)) #f (all (cdr lst)))) Giving error: car: contract violation expected: pair? given: '() A...

Translate Scheme closure-defining function into Haskell

haskell,recursion,types,scheme,closures
The following procedure, written in Scheme, (define (eat xs) (lambda (x) (if (eq? x 'vomit) (reverse xs) (eat (cons x xs))))) can be called in the following way: > eat #{procedure 9165 eat} > (eat '()) #{procedure 9166 (unnamed in eat)} > ((eat '()) 1) #{procedure 9166 (unnamed in eat)}...

Writing a While Loop in Scheme

loops,recursion,lambda,scheme,r5rs
I am trying to implement a while loop using recursion with lambda, but I just don't understand how to do it. I am supposed to start with this lambda expression: ((lambda (x) (x x)) (lambda (x) (x x)) My first question is why does this cause 'eternal' recursion? I try...

Scheme-Source expression failed to match any pattern

scheme
I am writing a program in Scheme to manipulate some lists and some self defined types. I have written the following short code and it gives me the following error: Source expression failed to match any pattern Why does this error crop up? I think this is because I used...

How is it possible to filter a list of directories via “directory-exists?”?

scheme,racket
I recently discovered a strange behaviour of racket: Whenever I try to filter a list of directories created via directory-list my REPL returns me an empty list, but when I try the same with an quasiquoted list my REPL returns a correctly filtered list. My questions is now: Why it's...

Item collection count - Racket/Sceme

count,functional-programming,scheme,racket,mud
I am in the process of designing a small MUD game using racket. In my game, gems which are collected by the player are used to bribe guards. Currently if the player possesses more than 1 gem, the game will not let them bribe a guard. Here is the relevant...

Arranging a list of words according to the order they occur in a sentence in Scheme

scheme,guile
I have a sentence with me, for example, The game is played on a level playing field. Now, I have with me a list of words (played is the). These are random words given to me. Now, I have to order them according to the order they occur in the...

Change program code while running in Chicken Scheme

scheme,interpreter,chicken-scheme
Is it possible to update the program code while it is being interpreted by csi, the Chicken Scheme Interpreter? If so, how? So that I can interactively change part of the code and immediately see the effects of that changes. For example, suppose I have written the following program: (define...

Racket Intersect Two Lists

list,scheme,racket
I am trying to intersect two lists on Racket, but the following code is not working: (define (intersection a b) (if (null? a) '() (if (contains (car a) b) (cond (car a)(intersection (cdr a) b)) (intersection (cdr a) b)))) The result always end up being the first item of list...

Append string to existing textfile in IronScheme

file,scheme,append,r6rs,ironscheme
We are trying to construct a log file using IronScheme, and we have written a code for it using racket. It works fine in racket, but IronScheme throws an error. This is what we have so far: (define write-to-log (lambda(whatToWrite) (with-output-to-file "robot-log.txt" (lambda () (printf (string-append whatToWrite "\r\n" ))) #:exists...

Racket - Importing OpenCL

linux,scheme,opencl,racket
I am attempting to learn OpenCL and I installed the OpenCL FFI using raco pkg install opencl, but I am now getting a strange error when I try to use the package: clGetPlatformIDs: Undefined error: -1001 context...: /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:255:18 /home/lb/Dropbox/workspace/misc/opencl-test.rkt: [running body] Here is the code snippet: #lang racket (require opencl/c)...

In Scheme, Is there a filter like function defined in the R5RS specification?

scheme,r5rs,mit-scheme
My baseline for this questions comes from MIT's Structure and Interpretation of Computer Programs. In the book, a filter function is defined. I know that map is part of the spec, but I see nothing resembling filter. EDIT: Specifically I'm referring to the spec here: http://www.schemers.org/Documents/Standards/R5RS/HTML/...

Racket Scheme: Basic example with Swindle

scheme,racket
I wanted to write a small prototype for something, and one of my first thoughts was, that a multimethod-based implementation would be really cool. While I have used GOOPS in the past with guile, I thought I would give racket a try this time. And googling quickly showed that a...

Implement yield and send in Scheme

scheme,coroutine,continuations,guile,delimited-continuations
I'm trying to port yield and yield from from Python to Scheme. Here is an implementation I've done: (define (coroutine routine) (let ((current routine) (status 'new)) (lambda* (#:optional value) (let ((continuation-and-value (call/cc (lambda (return) (let ((returner (lambda (value) (call/cc (lambda (next) (return (cons next value))))))) (if (equal? status 'new) (begin...

Is there a way to see the body of a lambda in Racket?

lambda,scheme,racket
Say I have this code: #lang racket (define a ((λ (x) x) ((λ (y) y) (λ (z) ((λ (w) w) z))))) I know intuitively that this lambda expression is (extensionally) equal to (λ (z) z) My question is if there is a way to print out the body of a...

Passing only one parameter to map instead of two in Scheme

scheme,guile
I have a function in scheme (extract-disjunct word nodes) that takes two parameters: word and nodes. I have a sentence: "This is a test sentence". For each word in this sentence I want to apply the above given function. This can be done with a simple map operation. However, the...

How can I modify function bindings in Common Lisp?

variables,binding,scheme,lisp,common-lisp
Here is something you can do in Scheme: > (define (sum lst acc) (if (null? lst) acc (sum (cdr lst) (+ acc (car lst))))) > (define sum-original sum) > (define (sum-debug lst acc) (print lst) (print acc) (sum-original lst acc)) > (sum '(1 2 3) 0) 6 > (set! sum...

understanding call/cc in scheme

scheme,racket,continuations
Could someone please explain what happens once the continuation is called for this. ((cdr (or (call/cc (lambda (cc) (cons 2 (lambda () (cc #f))))) (cons 3 5)))) ((cdr (or (call/cc (lambda (cc) (cons 2 (lambda () (cc #f))))) (cons 3 (lambda() (+ 3 2)))))) The first statement gives error but...